一:
若有两个文件:one.java   two.java ,在 one.java 中要用到 two.class。理论上要先编译 two.java 然后再编译 one.java 才不致报错。但 javac *.java  这个命令,编译当前目录下所有 .java 文件。又没有指定先编译哪个文件,为什么不报错?二:
为什么在构造函数前加访问权限(public ,……),返回类型,结果不报错?

解决方案 »

  1.   

    1、说明sun在作javac命令时候已经考虑到了这一点
    2、编译器没有把你那个方法当作构造函数,class是可以不写构造函数的,默认会有无参的构造函数的说
      

  2.   

    一:
    若有两个文件:one.java   two.java ,在 one.java 中要用到 two.class。理论上要先编译 two.java 然后再编译 one.java 才不致报错。但 javac *.java  这个命令,编译当前目录下所有 .java 文件。又没有指定先编译哪个文件,为什么不报错?
    这在Java中叫做:动态绑定...所以只要你编译one.java就会调用two.java的...
      

  3.   

    二:
    为什么在构造函数前加访问权限(public ,……),返回类型,结果不报错?在构造方法中加返回类型是会报错的.....你编译时候不不报错么?
    加访问权限是肯定不会报错的
      

  4.   

    class one {
    public static void main(String[] args)
    {
    two a=new two();
    System.out.println(a.getVal());
    }}class two
    {
    protected two()
    {
    a=5;
    }
    int two()      // 不执行这个,重载吗?! 重载的定义好象不包括返回值。
    {
    a=3;
    return 3 ;
    } int getVal()
    {
    return a;
    }
    int a;
    }
      

  5.   

    楼上说的不错,补充一点,构造函数前面加限定字段(public,private等)是完全可行的;如果加上private,那么在别的类中就不能实例化这个类,这在单例模式中常常用到。