黑马程序员技术交流社区

标题: 成员内部类不可以有静态属性? [打印本页]

作者: 拉乌echo    时间: 2015-6-14 22:38
标题: 成员内部类不可以有静态属性?
可以吗?

作者: 安安安    时间: 2015-6-14 23:34
如果内部类修饰为静态,也就是说静态内部类。类中就可以静态方法或成员。
如果内部类没有修饰为静态,类中就不能有静态方法或成员。
要说原因的话,就是静态属性在类运行时就存放在内存中。
而非静态的需要创建实例对象才会存放在内存中。
我们在调用内部类的方法时。如果都是静态就直接类名调用:Outer.Inner.method();
如果非静态则创建实例调用:new Outer.Inner().method();
这是如果Inner为非静态而method为静态的话就会出现矛盾。
因为Inner需要创建Outer实例才存在内存中,
而method却在类运行时就在内存中。
所以非静态内部类中不可以有静态属性。

以上是我的理解。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2