Java:为什么一个文件不能有多个公共(public)类

标签 java

<分区>

public class A
{
}  

public class B 
{
    public static void main(String[] args) 
    {
    }
}

为什么我们不能将两个类都声明为公共(public)类?
为什么只有 Main 类可以公开? 我知道通过公开类,它可以让你在包中访问,但是如果我做

     public    class a
     { 

     }
    class B
     {
    public static void main(String[] args) 
    {

     }
  }

为什么这段代码报错 我们真的需要通知主类是公共(public)的吗因为每个类都是公共(public)的

最佳答案

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

如果您希望这两个类是公共(public)的,则必须将它们放入两个 .java 文件中:A.javaB.java

来自JLS 7.6. Top Level Type Declarations :

This restriction implies that there must be at most one such type per compilation unit. This restriction makes it easy for a Java compiler to find a named class within a package. In practice, many programmers choose to put each class or interface type in its own compilation unit, whether or not it is public or is referred to by code in other compilation units.

关于Java:为什么一个文件不能有多个公共(public)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16971610/

相关文章:

java - 非打包对象的 JNI 签名

java - Android SDK 和 Eclipse 虚拟设备未启动

java - 没有打印任何内容

java - 如何设置按钮的 onClick,以便它根据星期几将我带到某个 Activity ?

java - 从 XML 文件获取架构位置 (noNamespaceSchemaLocation)

java - AspectJ MethodSignature 为 getParameterNames() 返回 null

java - 使用 Java 控制 Firefox

java - 获取(并行)流的状态

java - 未找到 Maven 属性文件

java - Mockito ArgumentCapture 无法识别多个泛型类型