说明
java局部类是定义在外部类的局部位置,一般在方法中,有类名
1、局部内部类可以访问外部类的所有成员包括私有的。
2、不能添加访问修饰符,因为局部内部类就相当于一个局部变量(局部属性),但可以加final表示不可继承。
3、作用域:仅在定义它的方法或代码块中。
4、访问属性遵循就近原则 想访问外部类的同名属性可以加Outer01.this。 可以理解Outer01.this为这就是一个对象,谁调用了定义了局部内部类的方法,那么这个Outer01.this就是谁。
class Outer01 {//外部类
private int n1 = 10;
public void m2() {//外部类的方法
System.out.println("m2()被执行...");
}
public void m1() {//外部类的方法
m2();
int n1 =20;
final class Inner01 {//位于方法中的内部类,关键字final表示该类不能被继承
public void f1() {
System.out.println("n1 = " + n1);//访问属性遵循就近原则,即输出20
//想访问外部类的同名属性可以加Outer01.this 可以理解为这就是一个对象
System.out.println("Outer01 的n1 = " + Outer01.this.n1);//Outer01.this 外部类的对象
m2();//局部内部类可以访问外部类的所有成员包括私有的。
}
}
Inner01 inner01 = new Inner01();
inner01.f1();
}
}
附:改篇文章仅用于记录所学知识,如有误导敬请海涵!