2个程序:
//a0519.java
package aaa;
public class a0519{
public int x = 10;
public a0519(int x){ 
this.x = x;
}
}//b0519.java
package bbb; //??? 把此行去掉就出错了
import aaa.*;public class b0519 {
public int y = 0;
public b0519( int y){
this.y = y;
}
public static void main(String []args){
b0519 b = new b0519(100);
a0519 a = new a0519(100);
}
}
疑问:为什莫把 package bbb;去掉会出错?平时我们用jdk包不写package 也不出错呀?

解决方案 »

  1.   

    两个类都定义为public,所以如果你把两个类都放在一的话,编译肯定通不过。
    而不放在一起的话,你再怎么也的为你所定义的类定义一个包吧?
      

  2.   

    这只是一个小小的练习程序,没有写包也无所谓吧?如下面大家熟悉的程序:
    //package xx;
    import java.lang.*;
    public class xx{
    public static void main(String []args){
    System.out.println("hello world");
    }
    }
    第一句package xx;写与不写都不会错的。疑问就是为什末用jdk的类没问题,用我的类有问题
      

  3.   

    如果你把那句去掉然后把
    import aaa.*; 改成 import aaa.a0519; 就可以了。
    我也解释不清楚,有时候自己建的包,引入时好像不能用*,有时候又可以,我也想知道是什么原因。
      

  4.   

    从出错信息看,系统似乎没有找到aaa包里面的a0519,不信你把a0519.class删掉,出错信息是一样的。
      

  5.   

    是的,如eltonzhang所说,如果指定了要引入的类是不会出错的,不指定。
      

  6.   

    不指定,报出
    file does not contain class a0519
    Please remove or make sure it appears in the correct subdirectory of the classpath.