inner 내부 클래스가 존재하는 클래스에서 외부클래스를 나타내는 this와 내부클래스를 나타내는 this- 클래스.this
public class DotThis {
void f() {
System.out.println("DotThis.f()");
}
public class Inner {
public DotThis outer() {
return DotThis.this;
//DotThis.this 는 외부클래스 객체(DotThis)를 나타낸다.
//return this;
//this 는 내부클래스 객체(Inner)를 나타낸다.
}
}
public Inner inner() {
return new Inner();
}
public static void main(String[] args) {
DotThis dt = new DotThis();
DotThis.Inner dti = dt.inner();
dti.outer().f(); //outer()가 리턴하는 것이 외부클래스 객체를 리턴함
}
}
/* 결과:
DotThis.f()
*/
클래스이름.this 는 클래스의 인스턴스를 나타내는 명시적 표현이다.