你的意思是不是说通过IMPORT引入和在一个源文件中自己定义的类或者照搬的类的区别?

解决方案 »

  1.   

    我把两个类合在一个文件里,用默认的包,就可以运行,但我把其中一个打包,(pi/s.class)
    package d;
    class s{
        private int i,j;
      s(int i,int j){
        this.i=i;this.j=j;}
        public void show(){
    System.out.println(i);
    System.out.println(j);
    }
    }
    然后,我在另一个文件里tests.java:
    import d.*;
    public class tests{
    public static void main(String []args){
    s as=new s(1,2);
    as.show();
    }
    }
    编译就出错
    谢谢!
      

  2.   

    检查你的环境变量,或者你的编译时的选项,如果CLASSPATH没有错误的话,你应该注意:你的文件结构应该是
    somepath/d/s.java
    somepath/test.java然后在somepath目录下编译,运行,这样就不会有错,你再试试看:)
      

  3.   

    import 是用来当你所要用的类在于现在不同包中的时候!
    在源文件中的情况是:他们都在同一个包中!
      

  4.   

    "我把两个类合在一个文件里,用默认的包,就可以运行,但我把其中一个打包,(pi/s.class)
    "中的pi/s.class是什么意思,注意:
    somepath/d/s.java
    somepath/d/s.class
    somepath/test.java"d"是你包的名字。
      

  5.   

    不是,import导入和c中的#include是不一样的。要成为一个包中的文件必须放在同一目录下,并且都有package 包名 (包名就是目录名)如果出错就是你的配置有问题。试试在somepath目录下
    javac classpath=.;c:/j2sdk1.3.1/lib/rt.jar; test.java
      

  6.   

    嘿嘿import进来的不同包哟,你声明的变量以及方法如果是默认的(default)则不可见哟
      

  7.   

    经jchaor(jchaor)提醒才反应过来,呵呵,注意你的class s.public class s{
        public s() {
            ...
        }
        ...
    }