单独写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));
}}

解决方案 »

  1.   

    你现在的代码能不能成功?
    你手工编译的还是有IDE工具的?
      

  2.   

    编译了Array2,编译Array3成功,
    如果再把Array2删除了,编译Array3又会出问题。
    在cmd 里运行。
      

  3.   

    你的文件结构?
    sagak接口是在哪个文件里写的?
      

  4.   

    sagak是在Array2里的,
    Array2编译成功是可以理解的,但是Array3是在一个文件夹里的另一个类,
    sagak只是在Array2里定义了的,Array3怎么会成功运用到的呢?
      

  5.   

    你自己看看文件夹下都有什么.class文件就明白了.Array2.java编译成2个.class文件
    Array2.class
    sagak.class
      

  6.   

    但是Array3只是import java.util.*;
    sagak.class却是在我自己建的一个文件夹下,Array2怎么找到sagak这个MM的呢?莫非程序和程序员一样,都是色心难奈,满世界找MM。
      

  7.   

    根据我经验,因为你的java程序没有package。不管这个是否是你error的原因,都请记得永远加上package。这个能减少很多麻烦
      

  8.   

    能不能请教一下,这个package是自己建的吧,如果不是能不能具体地说一下.