class OuterClass {
final String str = "OuterClass";
private InnerClass innerClass;
public InnerClass getInner() {
innerClass = new InnerClass();
return innerClass;
}
class InnerClass {
final String str = "InnerClass";
final String str2 = this.str;//指向内部类的域
final String str3 = OuterClass.this.str;//指向外部类的域
}
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
InnerClass innerClass = outerClass.getInner();
System.out.println(innerClass.str);
System.out.println(innerClass.str2);
System.out.println(innerClass.str3);
}
}
输出结果:
InnerClass
InnerClass
OuterClass
组合 | 用法说明 |
---|---|
this | 指代当前对象的引用 |
类名.class | 指向每个类对应的唯一类对象(类型为Class) |
类名.this | 内部(可以是匿名内部类)类调用外部类的对象时使用,即在内部类中使用时:外部类对象是外部类名.this,内部类对象则是this |