A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法中的内部类能不能访问方法中的局部变量,为什么?

2 个回复

倒序浏览
能呀,内部类可以直接访问外部类成员,包括私有的.你可以把内部类也看成一个成员就行了
回复 使用道具 举报
内部类可以访问方法中的局部变量,前提是局部变量是被final修饰的(jdk8之前)。原因很简单,对象是在堆内存中,而方法是在栈内存中,局部变量的生命周期最长也只是在方法所在的大括号中,而方法执行结束弹栈后,局部变量也就随之消失了,而堆内存中的对象不会立即消失,这样,局部变量就访问不到了,所以加final修饰用来延长局部变量的生命周期,在编译的时候,是直接用变量的实际值替换掉了符号引用。/微笑
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马