package com.haima.myreview;
//举例说明:为什么内部类访问局部变量时,局部变量要用final修饰
public class Test2_内部类访问局部变量 {
public static void main(String[] args) {
//获取一个引用指向内部类对象
Object obj = new Outer().method();
//method方法弹栈后,局部变量还存在
System.out.println(obj.toString());
}
}
class Outer {
public Object method() {
//局部变量(假设没有加final)
final String s = "abc";
//内部类
class Inner {
//重写toString方法,目的是为了obj可以编译运行
public String toString() {
//访问局部变量
return s + "";
}
}
//返回内部类对象
return new Inner();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |