【发布时间】:2012-10-19 10:23:20
【问题描述】:
我对内部类的访问规范感到非常困惑。请向我解释私有和受保护的内部类和嵌套类。 我想知道为什么不能在静态内部类中声明非静态成员。
非常感谢。
对不起...我错了。我想知道为什么不能在非静态内部类中声明静态成员..我反问..对不起
【问题讨论】:
标签: java inner-classes nested-class
我对内部类的访问规范感到非常困惑。请向我解释私有和受保护的内部类和嵌套类。 我想知道为什么不能在静态内部类中声明非静态成员。
非常感谢。
对不起...我错了。我想知道为什么不能在非静态内部类中声明静态成员..我反问..对不起
【问题讨论】:
标签: java inner-classes nested-class
非静态成员肯定可以在静态内部类中声明,但不允许其他方式。见:Why does Java prohibit static fields in inner classes?
【讨论】:
希望这能回答您的一些问题吗?
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
但是你错了,你可以在静态嵌套类中声明非静态成员,这里声明为静态的类是为了将它与内部类区分开来。静态嵌套类可以像任何其他顶级类一样实例化,它们只是以静态方式引用:
new StaticClass.NestedClass()
【讨论】: