黑马程序员技术交流社区
标题:
关于静态内部类
[打印本页]
作者:
Anyway
时间:
2014-8-11 09:44
标题:
关于静态内部类
本帖最后由 Anyway 于 2014-8-11 18:06 编辑
为什么静态内部类的实例方法不能访问外部类的实例属性呢?
作者:
jackhai9
时间:
2014-8-11 09:52
如果不需要内部类对象与其外部类对象之间有联系,可以将内部类声明为static。这通常称为嵌套类(nested class)。它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外部类对象。然而,当内部类是static的时,就不是这样了。嵌套类意味着:
1. 嵌套类的对象,并不需要其外部类的对象。
2. 不能从嵌套类的对象中访问非静态的外部类对象。
作者:
如果有梦
时间:
2014-8-11 10:06
只能访问外部类的静态成员和方法。
作者:
刘沙
时间:
2014-8-11 10:08
你的这里说的应该是外部类的非静态属性吧 这个肯定是不行的 静态的东西在对象之前产生 这个时候你去调用非静态的成员属性是没法调用的 因为这个时候这个成员属性还不存在呢 就好比 现在存在的东西 想使用未来的某个东西一样 行不通的
作者:
﹑淼
时间:
2014-8-11 10:30
内部类是可以直接访问外部类的成员,但静态的只能访问静态的。我是这么理解的
作者:
zhangxun
时间:
2014-8-11 10:57
楼上解释的很清楚
作者:
永恒星空
时间:
2014-8-11 11:13
内部类是可以直接访问外部类的成员,但静态的只能访问静态的。如果想访问外部的非静态方法,只能建立对象调用了,我是这么感觉的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2