2011-02-01 5 views
1

클래스를 다른 클래스 안에 중첩하면 중첩 클래스가 자동으로 상위 클래스의 하위 클래스가됩니까? 중첩 된 클래스는 부모 클래스의 모든 public 메서드에 액세스 할 수 있습니까?중첩 클래스

아 죄송합니다 - 프로그래밍 언어는 주로 Java입니다!

+1

어떤 언어입니까? –

답변

5

중첩 된 클래스를 다른 클래스에 중첩하면 중첩 클래스가 자동으로 상위 클래스의 하위 클래스가됩니까?

없음

중첩 된 클래스는 모든 public 메소드에 액세스 할 것인가, 부모 클래스의 vairables?

내부 클래스가 정적이 아닌 경우 예. 또한 정적이거나 아닌지, 공개 여부와 관계없이 다른 회원에게도 액세스 할 수 있습니다. 중첩 클래스가 정적으로 선언 된 경우 엔 클로징 인스턴스가 없으므로 외부 ("상위") 클래스의 정적 멤버에만 액세스 할 수 있습니다.

+0

단지 8 초 전. :). 하지만 너는 나보다 빠르다. :) –

+0

다른 방식으로도 작동합니까? 외부 클래스가 내부 클래스를 인스턴스화하지 않고 내부 클래스 메서드/변수에 액세스 할 수 있습니까? – dr85

+0

+1, 좋은 답변입니다. – aioobe

2

중첩 클래스는 상위 클래스의 하위 클래스가 아닙니다. 중첩 클래스가 정적이 아닌 경우 상위 클래스의 모든 메서드와 변수에 액세스 할 수 있습니다. 중첩 된 클래스가 정적 인 경우 정적 필드 및 메서드에만 액세스 할 수 있습니다.

1

어떤 언어의 참조입니까? 대부분의 언어에서 내부 클래스와 하위 클래스는 완전히 다른 것입니다. 내부 클래스는 필드 및 메서드가 외부 클래스의 멤버 인 것처럼 외부 클래스의 "멤버"입니다. 그리고 외부 클래스의 (정적) 메서드가 모든 (정적) 클래스 멤버에 액세스 할 수있는 것처럼 보통 내부 클래스는 외부 클래스의 멤버로 외부 클래스의 다른 모든 멤버에 액세스 할 수 있습니다. (그러나 이것은 모든 OO 언어에서 사실이 아닙니다.)