厉害!刚开始学就发现这样的问题。
我在Jdk1.4.0上也会出现这样的情况,如果前面加上final也可以。所以怀疑默认是final,但证明不是这样,因为它是能被继承的。
不过编译后.class 文件的名字是和类名是一致的。
可能是java在编译时只对加了public 的类才进行类名与文件名是否一致的检查。

解决方案 »

  1.   

    那么如果类定义前面不加任何关键词修饰,JAVA默认是什么类类型呢?
      

  2.   

    小弟,告诉你一方法,CLASS文件的名字和public的后的名字一样,因为这是一个主类,固不能有两个和两面个以上的public 的类
      

  3.   

    java中,不管有没有定义public类的,都可以编译!
    至于运行的,如果没有定义类为public的,只要里面含有按规定形式的main方法,都可以运行的,例如:class Test {
       public static void main(String[] args) {  //somecode   }
    }这个程序运行没问题。另外,java是这么规定的(呵呵,他们规定,我们必须遵守呀):
    1. 任何源文件至多只含一个public 类
    2. 如果含有public类,那么必须和源文件名字相同
    3. 可以包含若干个非public类
    4. 可以没有任何public类,这时文件名可以随便定