什么是静态嵌套类? 静态和非静态嵌套类之间有什么区别?
答案 0 :(得分:11)
静态内部类是嵌套在另一个具有static
修饰符的类中的类。它与顶级类几乎完全相同,只不过它可以访问它所定义的类的私有成员。
class Outer {
private static int x;
static class Inner1 {
}
class Inner2 {
}
}
类Inner1
是一个静态内部类。类Inner2
是一个非静态的内部类。两者之间的区别在于,非静态内部类的实例永久地附加到Outer
的实例 - 如果没有Inner2
,则无法创建Outer
。但是,您可以单独创建Inner1
个对象。
Outer
,Inner1
和Inner2
中的代码都可以访问x;不允许其他代码。
答案 1 :(得分:0)