public class A
{
}
public class B
{
public static void main(String[] args)
{
}
}
为什么不能将两个类都声明为public?
为什么只有Main
类可以公开?我知道通过将class设为public,它将允许您访问包ok,但是如果我将
public class a
{
}
class B
{
public static void main(String[] args)
{
}
}
为什么这个代码给出错误我们真的需要通知主类是公共的吗?因为每个类都是公共的
因为一个.java文件只能包含一个公共类。
如果你想要这两个类是公共的,他们必须放在两个。java文件:A.java
和B.java
。
来自JLS 7.6。顶层类型声明:
这个限制意味着每个编译单元最多只能有一个这样的类型。这个限制使得Java编译器很容易在包中找到一个命名的类。在实践中,许多程序员选择将每个类或接口类型放在自己的编译单元中,不管它是否是公共的,或者是否被其他编译单元中的代码引用。
Java类的文件名是公共类的名称。你不能有两个文件名,因此你不能有两个公共类