为什么一个.java文件里面只能有一个public
    而且,.java的文件名必须和public的类的名一样???~??~          谢谢大家,初学者,想了好久没有想通~```

解决方案 »

  1.   

    我觉得应该是为了方便查看源代码以及javadoc吧。比如像Ecplise这样的IDE,通过类名来获得它的源码以及javadoc并显示出来。最好的解决办法当然是让类名和源文件名相关联起来。但因为一个源文件中可以包含多个class,所以很自然地就采用限制只能有一个public class的方法来让一个源文件和一个类唯一关联了。个人理解。
      

  2.   

    ////////////////////////////////////////////////////////////////////////////////////
    java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样。 
    只能有一个public类是为了给类装载器提供方便。 
    一个public 类只能定义在以它的类名为文件名的文件中。 
    class a 表示默认的访问级别,即只有包内的其他类能访问它 
    (严格来说应该是 class A,类名一般大写) 
    小应用程序只有一个类,一方面是因为定义的类越多,程序执行就越缓慢(需要多装载几个类),另一方面是为了处理的方便,因为只有一个类时,编译之后就只有一个.class文件,如果是多个类,编译之后就有几个.class文件,这时候就要打包成.jar文件,再添加到相应的 
    HTML文件标记中,这样显然更麻烦了。
    //////////////////////////////////////////////////////////////////////
    某个社区说的,希望能给楼主帮助
    ,我也学习一下,嘎嘎
      

  3.   

    1、一个java文件最多只能有1个public类,即:可以有一个public类,也可以一个都没有;2、如果有public类的时候,文件名必须和这个public类的类名一致;如果没有public类,这个java文件可以是任意名称。3、作为程序入口的类必须为public类。
      

  4.   

    楼上的都说完了一个public
    其他的类都是为这个类提供方法,注意包访问权限
      

  5.   

    作为程序入口的类不一定要public类,只要是执行时Classloader能找到,有权访问的类及main方法就行public指定的类必须是以同类名的文件名来保存,所以不能有多个public类。
      

  6.   

    FreezeCS(★去留无意漫观天外云展云舒★) ( )已经说的比较清楚了!其实你在eclipse里可以自己试下,你就写两个public类,看看它报啥错!这不就清楚了!
      

  7.   

    Dan1980   讲的很有道理也~``~`  不过还是谢谢大家指教`
      

  8.   

    java中默认public的类名和文件名是相同的,所以一个java文件中只能有一个public修饰的class。
    但是java文件中可以没有public修饰的class。
      

  9.   

    class可以用有四种修饰方法:
    public:一个文件中,顶层的类只能有一个用public修饰,内部类可有N个类用puhlic修饰
          (friend):不用多说了吧
    protected、private只用于修饰内部类