为什么 Java 文件中只能有一个公共类且该类名必须与 Java 文件名相同?
为什么 Java 文件中只能有一个公共类且该类名必须与 Java 文件名相同?
它强制所有Java代码以特定的方式进行组织,从长远来看有助于提高代码的可读性。
Java设计者选择了一种严格的方法来执行他们所认为的良好设计实践,这是该主题的一部分。与Perl中的任何事情都可以的态度形成鲜明对比。
object.Class
而不是仅使用 Class
实例化。相比之下,它们在功能上非常不同。 - Qix - MONICA WAS MISTREATED在IDE中导入源文件也是同样的情况。另一个原因是源文件的大小要合理。在侧边栏中解释道:“虽然对于高效的软件包导入是必要的,但编译器尚未强制执行此限制。”
很明显-像大多数设计原因一样-编译器必须通过所有编译单元(.java文件)进行额外的遍历,以确定类的所在位置,这会使编译变得更慢。
以下是规则。虽然并不完全正确。你可以像这样在"main"类中定义内部类:
public class A {
public class B {
...
}
}
A
/ \
file1.java file2.java
file1.java
package A;
class file1
{
public static void main(String args[])
{
}
}
public class file3
{
public static void main(String args[])
{
}
}
Java利用这种约定通过从类路径开始扫描子目录中的包层次结构来查找类/接口字节码。该层次结构的文件系统表示还强制执行一些基本规则。
我认为这可能是一个可能的原因。 在Java文件中只能有一个公共类,因为Java文件的名称与公共类的名称相同。显然,我们不能拥有两个不同名称的文件。