1

이것은 바보 같을 수 있지만 다음 코드를 보면 질문이 제기됩니다.정적이 아닌 중첩 클래스에 액세스

public class Outer { 
    public class Inner { 
     public static final int variable = 100; 
    } 

    public static void main(String[] args) { 
     int test = Outer.Inner.variable; // Inner Non-Static accessed 
             // with Class reference? 
    } 
} 

클래스 참조로 비 정적 중첩 클래스에 액세스하는 방법은 무엇입니까?

+2

필드 '변수'는 ​​정적이므로 액세스 할 수 있습니다. 기본적으로 최상위 클래스와 동일한 개념입니다. – Marco13

+0

비 정적 데이터 멤버는 정적으로 액세스 할 수 없습니다. 귀하의 예; 그러나 정적으로 액세스되는 정적 데이터 멤버입니다. – DwB

+0

내 쿼리는 비 정적 중첩 클래스 '내부'가 외부 클래스 참조 '외부'('Outer.Inner'??)에 의해 액세스되는 반면 Inner는 인스턴스 멤버입니까? – GauravS

답변

3

변수는 정적이며 그게 중요합니다. 변수는 정적이므로 클래스 참조로 항상 변수에 액세스 할 수 있습니다.

+0

감사합니다. 내 쿼리는 어떻게 내부 클래스가 인스턴스 멤버 인 반면 외부 클래스 참조 'Outer'('Outer.Inner'??)에 의해 NonStatic 중첩 클래스 'Inner'에 액세스 할 수 있습니까? – GauravS

+0

클래스에 액세스하고 있기 때문에 클래스의 인스턴스가 아닙니다. 내부 클래스는 인스턴스를 만들 든 아니든 클래스로 존재합니다. –