MyOuter
이라는 이름의 클래스가 있습니다. 클래스는 MyInner
이라는 간단한 내부 클래스로 구성되어 있습니다. 내부 클래스가 어떻게 작동하는지 배우려고 할 때 외부 클래스 private 멤버 변수가 내부 클래스 자체에서 액세스 할 수 있는지 여부를 이해하려고합니다.내부 클래스 개인 멤버 변수 액세스에 관해서
class MyOuter {
private int x = 7;
// inner class definition
class MyInner {
public void seeOuter() {
System.out.println("Outer x is " + x);
}
} // close inner class definition
} // close outer class
위의 코드는 완전히 합법적입니다. 내부 클래스가 실제로 외부 클래스의 private 멤버에 액세스하고 있습니다. 내부 클래스 도 외부 클래스의 멤버이기 때문에 괜찮습니다. 따라서 외부 클래스 (예 : 인스턴스 메서드)의 모든 멤버가 외부 클래스의 다른 멤버 인 private 에 액세스 할 수있는 것처럼 내부 클래스 (멤버도 가능)는 동일한 작업을 수행 할 수 있습니다.
제 이유가 맞는지 여부를 알려주십시오.
정확하지만 컴파일러에게 문의 할 수 있습니다. – zch