더북(TheBook)

2.6.3 내부 클래스용 특수 문법 규칙


앞에서는 내부 클래스 객체의 외부 클래스 참조를 outer로 지칭해 설명했다. 외부 클래스 참조를 나타내는 실제 문법은 조금 더 복잡하다. 다음 표현식은 외부 클래스 참조를 나타낸다.

OuterClass.this


예를 들어 내부 클래스 Memberdeactivate 메서드는 다음과 같이 작성할 수 있다.

public void deactivate() {

    Network.this.members.remove(this);

}


여기서 Network.this 문법은 필수가 아니다. 그냥 members로만 참조해도 암묵적으로 외부 클래스 참조를 사용한다. 하지만 외부 클래스 참조가 명시적으로 필요할 때도 있다. 다음은 Member 객체가 특정 네트워크에 속하는지 검사하는 메서드다.

public class Network {

    public class Member {

        ...

        public boolean belongsTo(Network n) {

            return Network.this = = n;

        }

    }

}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.