프로그래밍(~2017)/자바

inner 내부 클래스가 존재하는 클래스에서 외부클래스를 나타내는 this와 내부클래스를 나타내는 this- 클래스.this

단세포소년 2011. 10. 14. 10:53
반응형


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 는 클래스의 인스턴스를 나타내는 명시적 표현이다.


반응형