내부 클래스에서 외부 클래스 객체에 접근
Java에서는 개인 변수에 접근할 수 있는 내부 클래스를 생성하는 것이 가능합니다. 그리고 그것을 둘러싸는 외부 클래스의 메소드. 그러나 내부 클래스 자체에서 외부 클래스 객체에 액세스하는 것은 약간 까다로울 수 있습니다.
이를 달성하기 위해 내부 클래스는 OuterClass.this 구문을 활용할 수 있습니다. 이 표현식은 내부 클래스 객체를 생성한 외부 클래스의 특정 인스턴스를 나타냅니다. 내부 클래스가 외부 클래스의 멤버에 액세스하고 메서드를 호출할 수 있습니다.
// InnerClass.java
public class InnerClass {
private String name = "Peakit";
public 외부클래스 외부() {
return OuterClass.this;
}
}
제공된 코드 조각에서 내부 클래스 InnerClass에는 OuterClass의 인스턴스를 반환하는 external() 메서드가 있습니다. 이 메소드를 사용하면 내부 클래스 내에서 외부 클래스 객체를 얻을 수 있습니다.
// OuterClass.java
public class OuterClass {
public static void main(String[] args) {
OuterClass outer = new OuterClass(); InnerClass inner = outer.new InnerClass(); OuterClass anotherOuter = inner.outer(); if (anotherOuter == outer) { System.out.println("Was able to reach out to the outer object via inner !!"); } else { System.out.println("No luck :-( "); }
}
}
이 예에서 external() 메서드는 외부 클래스 인스턴스는 anotherOuter 변수에 할당됩니다. anotherOuter와 외부가 동일한 객체를 참조하는 경우 이는 외부 클래스 객체가 내부 클래스 내에서 성공적으로 검색되었음을 나타냅니다.
OuterClass.this 구문은 내부 클래스 자체 내에서만 액세스할 수 있다는 점에 주목할 필요가 있습니다. . 내부 클래스에 대한 제어권이 없어 코드를 수정할 수 없는 경우 내부 클래스 개체에서 외부 클래스 개체를 직접 검색할 수 있는 다른 방법은 없습니다.
위 내용은 Java 내부 클래스 내에서 외부 클래스 객체에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!