public class A
{
}
public class B
{
public static void main(String[] args)
{
}
}
为什么我们不能宣布这两个班级都是公开的?
为什么只有Main
课程可以公开?
我知道通过将类公开,它将允许你在包中访问ok,但是如果我做了
public class a
{
}
class B
{
public static void main(String[] args)
{
}
}
为什么这段代码会出错 我们真的需要通知主要类是公共bcoz每个类都是公开的
答案 0 :(得分:4)
因为一个.java文件只能包含一个公共类。
如果您希望将这两个类公开,则必须将它们放入两个.java文件中:A.java
和B.java
。
来自JLS 7.6. Top Level Type Declarations:
这个限制意味着每个编译单元最多只能有一个这样的类型。这种限制使Java编译器可以轻松地在包中找到命名类。在实践中,许多程序员选择将每个类或接口类型放在它自己的编译单元中,无论它是公共的还是由其他编译单元中的代码引用。
答案 1 :(得分:2)
Java类的文件名是公共类的名称。您不能拥有2个文件名,因此您不能拥有2个公共类。