A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

可以吗?

1 个回复

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

以上是我的理解。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马