this指的是当前正在访问这段代码的对象
1.当在内部类中使用this指的就是内部类的对象,
2.为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种形式
参见代码:
package test;
public class TestThis {
// TestThis打印方法
public void getTestThisInfo() {
System.out.println("类TestThis打印");
}
public void sysout() {
// 和下面的"TestThis t = this;"等价,表示当前的类TestThis
// TestThis t = TestThis.this;
TestThis t = this;
t.getTestThisInfo();
Inner i = new Inner();
i.sysout();
i.sysout1();
}
public class Inner {
public void getInnerInfo() {
System.out.println(">>>内部类Inner打印<<<");
}
public void sysout() {
// 和下面的"Inner"效果相同,表示当前的类Inner
// Inner t = Inner.this;
Inner t = this;
t.getInnerInfo();
}
public void sysout1() {
// 在"内部"类中,引用"外部"的类,使用"外部类名.this"
TestThis t = TestThis.this;
t.getTestThisInfo();
}
}
public static void main(String[] args) {
new TestThis().sysout();
}
}
网上很多大牛们写的代码中"this",其实就是这么回事。