Java:为什么文件不能有多个公共类

时间:2013-06-06 20:30:33

标签: java

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每个类都是公开的

2 个答案:

答案 0 :(得分:4)

因为一个.java文件只能包含一个公共类。

如果您希望将这两个类公开,则必须将它们放入两个.java文件中:A.javaB.java

来自JLS 7.6. Top Level Type Declarations

  

这个限制意味着每个编译单元最多只能有一个这样的类型。这种限制使Java编译器可以轻松地在包中找到命名类。在实践中,许多程序员选择将每个类或接口类型放在它自己的编译单元中,无论它是公共的还是由其他编译单元中的代码引用。

答案 1 :(得分:2)

Java类的文件名是公共类的名称。您不能拥有2个文件名,因此您不能拥有2个公共类。