- 定义在外部类方法中 ,作用范围和创建对象范围仅限于当前方法中
- 局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final
- 限制类的使用范围
// 外部类
public class Outer{
//实例变量
private String name = "刘德华";
private int age = 35;
//方法
public void show(){
// 定义局部变量
String address = "sz";
// 局部内部类:注意不能加任何访问修饰符
class Inner{
private String phone = "11234";
private String email = "[email protected]";
public void show2(){
// 访问外部类的属性
sout(name); // 相当于 Outer.this.name
sout(age);
// 访问内部类的属性
sout(this.phone);
sout(this.email);
// 访问局部变量 jdk1.7要求必须常量final、jdk1.8自动添加final
}
}
// 创建局部内部类对象
Inner inner = new Inner();
inner.show2();
}
}
// 测试类
public class Test{
psvm(String[] args){
// 创建外部类对象
Outer outer = new Outer();
outer.show();
}
}