자바 익명 클래스 내부에서 private 멤버 변수에 접근이 되는 이유?
글쓴이: jz99 / 작성시간: 월, 2011/10/31 - 1:17오후
interface Test {
public void test();
}
public class TestMain {
private String h = "AAA";
public static void main(String[] args) {
TestMain t = new TestMain();
}
public TestMain() {
Test t = new Test() {
public void test() {
System.out.println( h );
}
};
t.test();
}
}
위 소스를 실행하면 h값이 정상적으로 출력됩니다.
익명 클래스 내부와 바깥 클래스는 다른 영역 아닌가요?
TestMain 클래스의 private 멤버 변수에 접근이 안될 것 같은데, 접근이 되는 논리가 무엇인지 궁금합니다.
감사합니다.
Forums:
음.. private 의 범위를 잘 생각해보시기 바랍니다.
Test 라는 인터페이스의 구현이 TestMain Class 안에서 실제로 구현되어지기 때문이 아닐까요? ㅋㅋ
짧은 지식으로 고민해봅니다. ㅋㅋ
댓글 달기