关于java:什么是静态嵌套类?

What is a static nested class?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java: Static vs non static inner class

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


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

1
2
3
4
5
6
7
class Outer {
    private static int x;
    static class Inner1 {
    }
    class Inner2 {
    }
}

Inner1是一个静态的内部类。类Inner2是一个非静态的内部类。两者之间的区别在于,非静态内部类的实例永久附加到Outer的实例上——没有Outer,就不能创建Inner2。不过,您可以独立地创建Inner1对象。

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


参见Java内部类和静态嵌套类