Java 中的公共类与私有内部类

2022-09-03 17:44:56

我正在阅读Java编程的介绍,它没有关于这个主题的良好解释,这让我想知道为什么有人应该在java中使用私有内部类而不是使用公共类。

它们都只能由外部类使用。


答案 1

您的索赔是错误的:They both can be used only by the outer class.

public class A {
    private class B {}
    public class C {}
    public C getC() { 
        return new C();
    }
    public B getB() {
        return new B();
    }

}
public class Tryout {
    public static void main(String[] args) {
        A a = new A();
        A.B b = a.getB(); //cannot compile
        A.C c = a.getC(); //compiles perfectly
    }
}

请注意,您实际上可以在另一个类中有一个实例,并将其引用为(包括其所有公共声明),但不能用于 。A.CCA.B


由此可以理解,您应该对内部类使用私有/公共修饰符,就像通常使用它一样。


答案 2

推荐