什么是静态嵌套类?

时间:2011-04-27 14:35:39

标签: java inner-classes

  

可能重复:
  Java: Static vs non static inner class

什么是静态嵌套类? 静态和非静态嵌套类之间有什么区别?

2 个答案:

答案 0 :(得分:11)

静态内部类是嵌套在另一个具有static修饰符的类中的类。它与顶级类几乎完全相同,只不过它可以访问它所定义的类的私有成员。

class Outer {
    private static int x;
    static class Inner1 {
    }
    class Inner2 {
    }
}

Inner1是一个静态内部类。类Inner2是一个非静态的内部类。两者之间的区别在于,非静态内部类的实例永久地附加到Outer的实例 - 如果没有Inner2,则无法创建Outer。但是,您可以单独创建Inner1个对象。

OuterInner1Inner2中的代码都可以访问x;不允许其他代码。

答案 1 :(得分:0)