이의 내가 이런 클래스가 있다고 가정 해 봅시다 있습니까 : 내부 클래스는 개인이기 때문에, 위의 코드에서개인 내부 클래스에 액세스 한정자를 선언 할 필요가
public class OuterClass {
//...
private class InnerClass {
private int x; // This variable makes sense
public int y; // Is there any use for this?
}
}
을, 바깥 쪽 클래스는 액세스 할 수 있습니다 모든 변수, 사적인 변수까지 내부 클래스 자체는 다른 클래스에서는 보이지 않지만 둘러싸는 외부 클래스에서는 볼 수 없습니다.
위의 변수 y
이 공개되어 있어도 외부 클래스가 아닌 다른 클래스에서는 액세스 할 수 없습니다.
개인 내부 클래스의 모든 액세스 수정자는 기본적으로 개인용으로 보입니다.
그래서 내부 클래스의 멤버에 대해 액세스 한정자를 전혀 선언 할 이유가 있습니까?
'public class InnerClass2 extends InnerClass {}'(비록 이것을 권장하지 않지만) – fabian
@ fabian과 그게 무슨 일을합니까? InnerClass2는 여전히 'InnerClass'의 공개 및 비공개 필드 모두에 액세스 할 수 있습니다. – Kingamere
이렇게하면 슈퍼 클래스의'public' 멤버에 대한 액세스를 제공하는'InnerClass'의'public' 서브 클래스의 인스턴스를 생성 할 수 있습니다. 비록 실제 사용 사례를 생각할 수 없다 ... – fabian