含有2个public class好像并不会对编译造成什么实质性的影响啊,编译后还是可以产生2个字节码文件,为什么会有这种奇怪的规定呢?恳请ZangXT,火龙果,老紫竹等前辈们指教

解决方案 »

  1.   

    那能运行么?Java中的类一般是默认包访问或者public修饰的 而且java文件名与public类名是一样的  所以对于同一个文件类 只允许有一个public类 这是编译期的规范吧
      

  2.   

    将不同于文件名的public类改成static类就可以了
      

  3.   

    这只是规定,规定只是为了规范而用,至于为什么那我就不知道了,因为我也没参与这 JVM 规范的制定工作况且也不建议把两个类写在一个文件中,这是一种极其不好的代码格式
      

  4.   

    文件名必须和public的类名相同,如果有两个public的类,那文件名应该是什么啊??????
      

  5.   

    恳请ZangXT,火龙果,老紫竹等前辈们指教
      

  6.   

    这是个规定啊,sun公司规定了。
      

  7.   

    一个编译单元里只能有一个public《thinking in java》说的