我相信这个问题已经被问过,但我没能找到一个,所以我会问...
我很好奇私人(保护)和公共内部类之间有什么区别。我能够从使用外部类对象的包含类之外使用它们。
public class A{
private class B{
}
public static void main(String[] args){
A a = new A();
B b = a.new B();
}
}
我相信这个问题已经被问过,但我没能找到一个,所以我会问...
我很好奇私人(保护)和公共内部类之间有什么区别。我能够从使用外部类对象的包含类之外使用它们。
public class A{
private class B{
}
public static void main(String[] args){
A a = new A();
B b = a.new B();
}
}
私有内部类仍然可以在定义它的类中访问。
如果你有另一个类,B
是不可见的:
public class C {
public static void main(String[] args){
A a = new A();
B b = new B(); // compile error
}
}
哦,我明白了......谢谢! – Headshota
其实,你是A类还在里面,因为主要方法是类的静态方法的
是它允许在java中使用'a.new B()'? –
@ Eng.Fouad:是的,这就是如何在Java中实例化非静态内部类。 –
还允许使用简称新A()。new B() –