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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李文帅 中级黑马   /  2013-10-18 09:02  /  1137 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李文帅 于 2013-10-18 10:26 编辑

刚看了毕老师讲的内部类的教学视频,对于内部类只能访问呗final修饰的局部变量;局部内部类和匿名内部类中为什么不能定义静态成员这两个知识点不是很明白,求解

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

5 个回复

倒序浏览
其实不理解只要记住就好了,我个人的理解是这样的,不知道你对static了解么,static表示的是静态的,所谓静态的,其实就是不论你怎么new,都只有一个,换句话说,static,不用new也能被使用(调用 类名.变量 即可),而内部类是不能被外部类访问的,所谓的内部类,尤其是匿名内部类,其实就是只在类的内部为有限使用次数而定义的,所以,如果内部类使用static,那不就和内部类不能被外部访问这个说法冲突了吗?
回复 使用道具 举报
轩辕迪卡 发表于 2013-10-18 09:35
其实不理解只要记住就好了,我个人的理解是这样的,不知道你对static了解么,static表示的是静态的,所谓静 ...

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

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

1.png

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

2.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马