特点:
- 定义在代码块,方法体内的类叫局部内部类
- 局部内部类访问外部类的成员使用:外部类名.this.成员名
- 对外部世界完全隐藏,只在其作用域内生成对象
限制:
- 局部类不能加访问修饰符,因为它们不是类成员
- 成员内部类不能与外部类重名
- 局部内部类访问作用域内的局部变量,该局部变量需要使用final修饰
应用:
public class LocalInnerClass {
public static void main(String[] args){
Outer3 outer=new Outer3();
outer.showOuter();
}
}
class Outer3{
private String name="zhangsan";
private int num1=10;
private static int num2=20;
public void showOuter(){
final int num4=50;
class Inner3{
private int num3=30;
private int num1=20;
public void showInner(){
System.out.println("local-"+num3);
System.out.println("local-"+num1);
System.out.println("Global-"+Outer3.this.num1);
System.out.println("Static-"+num2);
System.out.println("final-"+num4);
}
}
Inner3 inner=new Inner3();
inner.showInner();
}
}