局部内部类
- 定义在外部类方法中,作用范围和创建对象范围仅限于当前方法。
//外部类
public class Outer{
private String name ="刘德华";
private int age = 35;
public void show(){
//定义局部变量
final String address = "深圳";
//局部内部类:注意不能加任何访问修饰符
class Inner{
//局部内部类的属性
private String phone = "15588888888";
private String email = "liudehua@qq.com";
public void show2(){
//访问外部类属性
System.out.println(Outer.this.name);
System.out.println(Outer.this.age);
//访问内部类的属性
System.out.println(this.phone);
System.out.println(this.email);
//访问局部变量,jdk1.7要求:变量必须是常量final。jdk1.8自动添加final
System.out.println(address);
}
}
//创建局部内部类对象
Inner inner = new Inner();
inner.show2();
}
}
- 局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final。
- 限制类的使用范围。