黑马程序员技术交流社区

标题: 关于内部类的一些疑问 [打印本页]

作者: 李文帅    时间: 2013-10-18 09:02
标题: 关于内部类的一些疑问
本帖最后由 李文帅 于 2013-10-18 10:26 编辑

刚看了毕老师讲的内部类的教学视频,对于内部类只能访问呗final修饰的局部变量;局部内部类和匿名内部类中为什么不能定义静态成员这两个知识点不是很明白,求解
作者: 轩辕迪卡    时间: 2013-10-18 09:35
其实不理解只要记住就好了,我个人的理解是这样的,不知道你对static了解么,static表示的是静态的,所谓静态的,其实就是不论你怎么new,都只有一个,换句话说,static,不用new也能被使用(调用 类名.变量 即可),而内部类是不能被外部类访问的,所谓的内部类,尤其是匿名内部类,其实就是只在类的内部为有限使用次数而定义的,所以,如果内部类使用static,那不就和内部类不能被外部访问这个说法冲突了吗?
作者: 做只会飞的鱼    时间: 2013-10-18 09:39
轩辕迪卡 发表于 2013-10-18 09:35
其实不理解只要记住就好了,我个人的理解是这样的,不知道你对static了解么,static表示的是静态的,所谓静 ...

很有道理
让我想起了接口不能有static方法,原因也是子类实现跟static方法只跟类有关冲突
作者: 轩辕迪卡    时间: 2013-10-18 09:44
至于你说的内部类只能访问呗final修饰的局部变量,你可以参考这个
http://blog.csdn.net/salahg/article/details/7529091
我说一下我的理解,我的理解就是局部变量只在方法存在时存在,当一个方法结束时,局部变量就不存在了,而如果用final修饰以后,这个变量就变成和类一起存在的变量,即使方法不存在的,但变量依然存在,直到内部类所创建的对象变成垃圾为止。
作者: 李文帅    时间: 2013-10-18 10:22
谢谢各位的指导,我明白点儿了,非常感谢!
作者: wenbaoxing    时间: 2013-10-18 11:07
看看图片

1.png (66.9 KB, 下载次数: 0)

1.png

2.png (27.63 KB, 下载次数: 0)

2.png





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