什么是静态嵌套类?

0 java inner-classes

可能重复:
Java:静态与非静态内部类

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

Ern*_*ill 11

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

class Outer {
    private static int x;
    static class Inner1 {
    }
    class Inner2 {
    }
}
Run Code Online (Sandbox Code Playgroud)

Class Inner1是一个静态内部类.Class Inner2是一个非静态的内部类.两者之间的区别在于非静态内部类的实例永久地附加到一个实例Outer- 你不能创建一个Inner2没有的实例Outer.但是,您可以Inner1单独创建对象.

代码在Outer,Inner1并且Inner2可以全部访问x; 不允许其他代码.