黑马程序员技术交流社区
标题:
匿名内部类
[打印本页]
作者:
cuculidae
时间:
2016-2-18 23:43
标题:
匿名内部类
为什么匿名内部类访问所在方法的成员变量时,成员变量要用final修饰?
作者:
xuecmg
时间:
2016-2-19 17:10
这是变量生命周期的问题,如果没用final修饰,则当方法调用完毕,方法弹栈,这个变量也就消失了,若此时匿名内部类对象还没有马上消失想用这个变量,就无法再使用了。当用final修饰之后,这个变量就进入了常量池,方法弹栈之后,变量依然存在,可以继续被匿名内部类对象使用。
在JDK1.7版本及其之前,final要自己写,从JDK1.8开始,final不用自己写,系统会默认加上。
作者:
ma464526717
时间:
2016-2-20 00:41
因为内部类之可以访问自己内部的变量,成员变量加上final,就成了常量,在常量池中,所以可以访问用final修饰的变量。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2