黑马程序员技术交流社区

标题: java内部类的一个小问题 [打印本页]

作者: 背包客    时间: 2015-10-24 15:28
标题: java内部类的一个小问题
小弟初学java,在学习内部类的时候有一点小疑惑,还望论坛里的各位高人指点一下。
学习视频中说内部类在访问局部变量时,这个局部变量必须是要用final修饰的,否则会编译出错,但是我没用final修饰,编译和运行还是正常通过的啊?难道是因为jdk版本的原因?

视频中内部类示例.PNG (150.69 KB, 下载次数: 24)

视频中内部类示例

视频中内部类示例

我自己编的程序和运行结果.PNG (77.79 KB, 下载次数: 88)

我自己编写的程序和运行结果

我自己编写的程序和运行结果

作者: pp7803515    时间: 2015-10-24 16:59
在JDK1.8中,好像如果你内部类访问局部变量,会自动帮你加final.你换一个低一点JDK版本,你就会发现不行了
作者: 背包客    时间: 2015-10-24 21:41
pp7803515 发表于 2015-10-24 16:59
在JDK1.8中,好像如果你内部类访问局部变量,会自动帮你加final.你换一个低一点JDK版本,你就会发现不行了 ...

貌似是这样的。。。
作者: chenguoyu520    时间: 2015-10-24 21:51
对啊,你可以不加final 修饰,系统虚拟机在编译时会自动给其加上的。就如同抽象类中的final以及static也可以不加不是嘛
作者: 背包客    时间: 2015-10-24 21:54
chenguoyu520 发表于 2015-10-24 21:51
对啊,你可以不加final 修饰,系统虚拟机在编译时会自动给其加上的。就如同抽象类中的final以及static也可 ...

主要是老师的学习视频里说必须要加,所以有点疑惑




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