我确信问题已经被提出,但我找不到一个,所以我会问......
我很好奇私有(受保护)和公共内部类之间的区别是什么。我可以使用外部类对象从包含类中使用它们。
public class A{
private class B{
}
public static void main(String[] args){
A a = new A();
B b = a.new B();
}
}
答案 0 :(得分:7)
仍然可以在定义它的类中访问私有内部类。
如果您有其他课程,则B
不可见:
public class C {
public static void main(String[] args){
A a = new A();
B b = new B(); // compile error
}
}
答案 1 :(得分:3)
实际上,你仍然在A类内部,因为main方法是A类的静态方法