18
Java에서 내부 클래스는 클래스를 둘러싸는 private 멤버에 액세스 할 수 있습니다. 하지만 외부 클래스가 내부 클래스의 개인 멤버에 액세스 할 수 있습니까? 이것은 내부 클래스가 정적인지 여부에 관계없이 발생합니다. 나는 이것이 사실이 아니라고 생각했지만 다음 코드는 컴파일하고 잘 작동하는 것 같다.Java 중첩 클래스에서, 둘러싼 클래스가 내부 클래스의 개인 멤버에 액세스 할 수 있습니까?
public class Outer {
class Inner {
private int i = 0;
private Inner() {}
}
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
oi.i = 10;
}
}
예상대로 나옵니다. 너
oi.i = 10;
예를 제외하고? – Ben중복 : http://stackoverflow.com/questions/1801718/outer-java-class-is-able-to-access-inner-class-private-members – finnw
이해가 안됩니다. 코드가 바로 여기 있습니다. 나는 결과를 안다. 나는 그것이 작동하는 것을 안다. 그 배후의 추론을 이해하고 싶었습니다. 이 질문에 답을 얻지 못할 것이라고 생각하십니까? – user236215