日期:2014-05-20  浏览次数:20607 次

先运行Array2后,就可以成功编译,怎么回事呢
单独写Array3这样一个类,就会提示错误,但是如果先写Array2这个类就会成功编译,怎么会这样呢?
import   java.util.*;
public   class   Array3{
public   static   void   main(String[]   args){
sagak[]   a=new   sagak[]{new   sagak(1,2),new   sagak(2,2),new   sagak(3,3),new   sagak(2,5)};
Arrays.sort(a);
for(int   i=0;i <a.length;i++)
System.out.println(a[i].getArea());
}
}
xxxxxxxxxxxxxxxxxxxxxxxxxxx
class   sagak   implements   Comparable{
int   width;
int   height;
sagak(int   width,int   height){
this.width=width;
this.height=height;
}
int   getArea(){
return   width*height;
}
public   int   compareTo(Object   o){
sagak   s=(sagak)o;
return   getArea()-s.getArea();
}
}
public   class   Array2{
public   static   void   main(String[]   args){
sagak   a=new   sagak(1,2);
sagak   b=new   sagak(2,4);
System.out.println(a.compareTo(b));
}}


------解决方案--------------------
你自己看看文件夹下都有什么.class文件就明白了.

Array2.java编译成2个.class文件
Array2.class
sagak.class
------解决方案--------------------
根据我经验,因为你的java程序没有package。

不管这个是否是你error的原因,都请记得永远加上package。这个能减少很多麻烦