局部内部类 (定义在方法或代码块中)
- 可以直接访问外部类的所有成员,包含private
- 不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量是不能使用修饰符的。但可以使用final修饰,因为局部变量也可以使用final
- 作用域:仅仅在它的方法或代码块中。
- 局部内部类--访问-->外部类的成员【访问方式:直接访问】
- 外部类--访问-->局部内部类的成员【访问方式:创建对象,在访问(注意:必须在作用域内)】
- 外部其它类---不能访问--->局部内部类(局部内部类的地位是一个局部变量)
- 如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类地位成员,可以使用(外部类名.this.成员)去访问
public class LocalInterClass{
public static void main(String[] args) {
Outer02 outer02 = new Outer02();
outer02.m1();
}
}
class Outer02{//外部类
//外部类中的私有方法都是可以在内部类中直接调用的
private int n = 1;
private void n1(){
System.out.println("这里是n1");
}
public void m1(){
class inter {//这就是一个局部内部类
public void info(){
//都是可以直接调用
System.out.println(n);
n1();
}
}
inter inter = new inter();
inter.info();
}
}