> Java > java지도 시간 > Java 내부 클래스 내에서 외부 클래스 객체에 어떻게 액세스할 수 있습니까?

Java 내부 클래스 내에서 외부 클래스 객체에 어떻게 액세스할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-30 14:57:10
원래의
320명이 탐색했습니다.

How Can I Access the Outer Class Object from Within a Java Inner Class?

내부 클래스에서 외부 클래스 객체에 접근

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿