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 는 클래스의 인스턴스를 나타내는 명시적 표현이다.
'프로그래밍(~2017) > 자바' 카테고리의 다른 글
[자바] wait(), notify() , notifyall() 사용시 주의점 java.lang.IllegalMonitorStateException (0) | 2011.11.10 |
---|---|
[자바]사용자 기본 홈 디렉토리 경로 찾기 (0) | 2011.11.10 |
[자바] 리플렉션(Reflection)에 대해서 (0) | 2011.08.18 |
[Java] 리플렉션에 대한 재고 (0) | 2011.08.18 |
자바 제네릭 관련 정리 (0) | 2011.08.18 |