为什么Java文件中只有1个公共类

Jen*_*esh 51 java

在任何Java文件中,为什么我们只能有一个名称与Java文件名相同的公共类?

Mik*_*zak 30

它强制所有Java代码以某种方式组织,从长远来看,这有助于提高代码的可读性.

Java设计者选择了一种严格的方法来强化他们对良好设计实践的理念,这也是该主题的一部分.与Perl中任何事物的态度形成对比.

  • 它应该更严格,也适用于非公开课程.大多数人都是以正确的方式做到这一点,但有些人仍然设法通过在一个文件中放置许多默认的可见类来制造混乱. (3认同)
  • 您是否有引用来支持代码可读性是设计者选择此限制的原因的说法? (2认同)

Tim*_*per 16

根据这个来源,它是为了有效编译:

在侧边栏中,它解释了原因:"编译器尚未执行此限制,尽管有效的包导入是必要的"

这很明显 - 就像大多数事情一旦你知道设计原因 - 编译器必须通过所有编译单元(.java文件)进行额外的传递,以找出哪些类在哪里,这将使编译更慢.

这同样适用于IDE中的源文件导入.另一个原因是合理的源尺寸.


spb*_*fox 8

这些是规则.虽然不太正确.您可以在"main"类中定义内部类,如下所示:

public class A {  
   public class B {  
       ...  
   }  
}
Run Code Online (Sandbox Code Playgroud)

  • 同样适用于非公共顶级类 (2认同)