.java 文件只能有一个 public 类且该类的名称必须与文件名相匹配

在Java中,每个源文件(.java文件)只能有一个公共(public)类,且该类的名称必须与文件名相匹配。 这意味着只能有一个类被声明为public,而其他类则不能被声明为public

例如,如果文件名为Example.java,则该文件中只能有一个公共类,并且该类必须使用public修饰符进行声明,如下所示:

// Example.java

public class Example {
    // 公共类的内容
}

// 非公共类(可以有多个)
class AnotherClass {
    // 非公共类的内容
}

但是,非公共类可以存在于同一个源文件中,并且可以有多个非公共类。这些非公共类在同一个文件中可以被其他类使用,但不能从其他文件中访问。

需要注意的是,这里所说的类是指 顶级类(top-level class),即直接声明在文件中的类。内部类(inner class) 不受此限制,可以在同一个文件中声明多个公共内部类或非公共内部类。

下面是一个示例,展示了如何在Example.java文件中声明多个公共内部类和非公共内部类:

// Example.java

public class Example {
    // 公共内部类
    public class PublicInnerClass {
        // 公共内部类的内容
    }

    // 非公共内部类
    class NonPublicInnerClass {
        // 非公共内部类的内容
    }

    // 公共静态内部类
    public static class PublicStaticInnerClass {
        // 公共静态内部类的内容
    }

    // 非公共静态内部类
    static class NonPublicStaticInnerClass {
        // 非公共静态内部类的内容
    }

    // 主类的内容
}

需要注意的是,内部类的访问修饰符可以是publicprotectedprivate或默认访问(即不使用任何访问修饰符)。如果内部类声明为public,则可以从其他文件中访问;如果内部类声明为protectedprivate或默认访问,则只能在同一文件中访问。

总结:在同一个源文件中允许声明多个内部类,但只能有一个公共类。

你可能感兴趣的:(Java,java)