Java面试题-局部内部类访问局部变量的注意事项?

局部内部类访问局部变量的注意事项?

内部类可参考

博客名称 链接地址
day10Java-内部类 https://blog.csdn.net/qq_40332952/article/details/104724069

A:局部内部类访问局部变量必须用final修饰
B:为什么呢?
局部变量是随着方法的调用而调用,随着调用完毕而消失。
而堆内存的内容并不会立即消失。所以,我们加final修饰。
加入final修饰后,这个变量就成了常量。既然是常量。你消失了。
我在内存中存储的是数据20,所以,我还是有数据在使用。

代码演示

class Outer {
	public int num = 10;
	class Inner {
		public int num = 20;
		public void show() {
			int num = 30;
			System.out.println(num);
			System.out.println(this.num);
			//System.out.println(new Outer().num);
			System.out.println(Outer.this.num);
		}
	}
}
class InnerClassTest {
	public static void main(String[] args) {
		Outer.Inner oi = new Outer().new Inner();
		oi.show();
	}	
}
发布了186 篇原创文章 · 获赞 0 · 访问量 4110

猜你喜欢

转载自blog.csdn.net/qq_40332952/article/details/104727191