目录
1.局部内部类的使用
- 说明:局部内部类是定义在外部类的局部位置,比如方法中,并且有类名
- 可以直接访问外部类的所有成员,包含私有的
- 不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量是不能使用修饰符的。但是可以使用final修饰,因为局部变量也可以使用final
- 作用域:仅仅在定义它的方法或代码块中
- 局部内部类---访问---->外部类的成员访问方式:直接访问
- 外部类--访问---->局部内部类的成员访问方式:创建对象,再访问(注意:必须在作用域内)
总结
- 局部内部类定义在方法中/代码块
- 作用域在方法体或者代码块中
- 本质仍然是一个类
- 外部其他类---不能访问----->局部内部类(因为 局部内部类地位是一个局部变量)
- 如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员)去访问
package com.logic.innerclass;
/**
* 演示局部内部类的的使用
*/
public class LocalInnerClass {
public static void main(String[] args) {
Outer02 outer02 = new Outer02();
outer02.m1();
System.out.println("outer02 hashcode= " + outer02);
}
}
class Outer02 {
private int n1 = 100;
private void m2() {
System.out.println("m2方法...");
}
public void m1() {
final class Inner02 {//局部内部类 本质还是一个类
private int n1 = 900;
public void f1() {
//Outer02.this 本质就是外部类对象 即哪个对象调用了m1 Outer02.this就是哪个对象
System.out.println("内部n1=" + n1 + "外部n1=" + Outer02.this.n1);
System.out.println("Outer02.this hashcode= " + Outer02.this);
m2();
}
}
Inner02 inner02 = new Inner02();
inner02.f1();
}
}
169

被折叠的 条评论
为什么被折叠?



