A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
doomsday
高级黑马
黑马币:26
帖子:162
精华:0
© doomsday 高级黑马 / 2015-4-8 15:58 / 1920 人查看 / 27 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
JarryHorse 发表于 2015-4-8 17:37 会的,a是局部变量,内部类不能访问局部变量,除非a是final修饰的
zouxx 发表于 2015-4-8 19:28 会报错的。
doomsday 发表于 2015-4-8 19:14 你的JDK什么版本的 我的是 JDK8 怎么不报错呢
突然世界晴 发表于 2015-4-8 20:10 不会报错的,新版会默认a被final修饰
doomsday 发表于 2015-4-8 22:38 如果默认为final修饰 那么改成a++编译,为什么会报错“从内部类引用的本地变量必须是最终变量或实际上的 ...
JarryHorse 发表于 2015-4-8 22:28 我JDK8,这跟JDK版本无关,这是Java底层机制决定的,方法在栈中运行,内部类对象存放在堆中,存在方法运 ...
1.jpg (50.25 KB, 下载次数: 116)
下载附件
2015-4-8 22:43 上传
2.jpg (49.35 KB, 下载次数: 141)
君嘘 发表于 2015-4-8 22:40 因为被final修饰的变量不能改变啊。 异常说明不是很清楚了么,最终变量嘛。 你a++不是等于修改变量么。。 ...
doomsday 发表于 2015-4-8 22:47 你没看明白提示吗?意思是要把a申明为最终,意思是还没申明为final 如果你把a修饰为final的话 a++会提示“ ...
君嘘 发表于 2015-4-8 23:03 从内部类引用的本地变量必须是最终变量或实际上的最终变量 你从这句话看出了什么,不是已经说明了a必须被f ...
3.jpg (79.19 KB, 下载次数: 118)
2015-4-8 23:08 上传
doomsday 发表于 2015-4-8 23:10 用你的话说,这个就应该提示“无法为最终变量a分配值” 我反编译class后a并没有被final修饰 ...
君嘘 发表于 2015-4-8 23:09 能编译的 ,而且能运行。保持楼主的代码不变,在show方法上new个B对象调用xx方法。打印结果是1没错 ...
doomsday 发表于 2015-4-8 22:44 我用eclips和直接dos窗口下编译都是一样的
图片1.png (20.16 KB, 下载次数: 88)
2015-4-8 23:27 上传
JarryHorse 发表于 2015-4-8 23:36 我的是这样的,老毕视频中第9天第4节的第4分20秒开始,有对这个知识点的讲解 ...