黑马程序员技术交流社区
标题:
局部内部类能访问非final的局部变量问题
[打印本页]
作者:
杨佳名
时间:
2014-9-18 21:53
标题:
局部内部类能访问非final的局部变量问题
本帖最后由 杨佳名 于 2014-9-21 11:16 编辑
刚刚开始学习java,基础部分学到了内部类。今天遇到一个问题
class Outer
{
void method()
{
int y = 2;
class Inner
{
void show()
{
//y=5;
System.out.println("Inner y==="+y);
}
}
new Inner().show();
}
}
class InnerClassDemo3
{
public static void main(String[] args)
{
new Outer().method();
}
}
局部变量y没有定义final,可是编译运行都过了,跟视频描述的不一样,之后向学校学长问,也不知道怎么回事。后来,又下载一个JDK1.7,编译就出错了。查阅1.8新特性才知道,jdk1.8在编译的时候自动把局部内部类使用的局部变量改成final了。又试了一下,虽然没有定义final,但更改y的值后,编译同样出错。
虽然因为这个花了几个小时,但最终搞出来结果还是蛮开心的,激动的来发我第一个帖子。
黑马,我一定会来的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2