黑马程序员技术交流社区
标题:
关于内部类定义在局部时的问题
[打印本页]
作者:
对牛弹吉他
时间:
2014-11-19 16:10
标题:
关于内部类定义在局部时的问题
class Outer
{
int x = 3;
void method()
{
int y = 4;
class Inner
{
void function()
{
System.out.println(y);
}
}
new Inner().function();
}
}
class Noname2
{
public static void main(String[] args)
{
new Outer().method();
}
}
这个代码编译时不出错,不是说当内部类定义在局部时,不可以访问它所在的局部中的变量。只能访问被final修饰的局部变量吗?
作者:
kerner
时间:
2014-11-19 16:54
编译能通过,你确定???
作者:
FlyFish
时间:
2014-11-19 17:27
JDK1.8新特性
作者:
叫我小强
时间:
2014-11-19 17:36
可能是JDK的原因吧!我的编译也能通过,而且也能运行,结果是4. 版本比毕老师的高。那个final在编译的时候自己又给加上了吧!
作者:
对牛弹吉他
时间:
2014-11-19 17:36
kerner 发表于 2014-11-19 16:54
编译能通过,你确定???
要不然我还来这里提问?
作者:
对牛弹吉他
时间:
2014-11-19 17:39
FlyFish 发表于 2014-11-19 17:27
JDK1.8新特性
为什么以前不可以,1.8就可以了?
作者:
马个了黑_邓
时间:
2014-11-19 17:59
JDK1.8在编译的时候 你要是没加final 他会默认的给你加上
作者:
cbb
时间:
2014-11-19 18:36
是的 当内部类定义在局部中的时候,还是可以访问外部数据的,但是访问内部类所在的局部内的变量时,这个变量要被final修饰, 至于版本的高低 不造~~我一直都用的1.6
作者:
计算机小菜鸟
时间:
2014-11-19 22:04
1.8新加上的!~~
作者:
huangkj
时间:
2014-11-19 22:07
1。8的确实可以,估计是新特性,老师教的是只能访问被final修饰的局部变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2