黑马程序员技术交流社区

标题: 方法中的内部类能不能访问方法中的局部变量 [打印本页]

作者: 1294668228    时间: 2016-4-5 21:09
标题: 方法中的内部类能不能访问方法中的局部变量
方法中的内部类能不能访问方法中的局部变量,为什么?

作者: 马儿不吃草    时间: 2016-4-5 22:10
能呀,内部类可以直接访问外部类成员,包括私有的.你可以把内部类也看成一个成员就行了
作者: cuiruolei    时间: 2016-4-5 23:18
内部类可以访问方法中的局部变量,前提是局部变量是被final修饰的(jdk8之前)。原因很简单,对象是在堆内存中,而方法是在栈内存中,局部变量的生命周期最长也只是在方法所在的大括号中,而方法执行结束弹栈后,局部变量也就随之消失了,而堆内存中的对象不会立即消失,这样,局部变量就访问不到了,所以加final修饰用来延长局部变量的生命周期,在编译的时候,是直接用变量的实际值替换掉了符号引用。/微笑




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