Java에서 일반적으로 이 포인터는 현재 액세스 중인 코드의 객체를 참조합니다. 그러나 내부 클래스에서 외부 클래스의 객체를 사용해야 하는 경우 외부 클래스의 클래스 이름을 사용하여 한정해야 합니다. 그것. 이 방법은 Android 개발에서도 비교적 일반적입니다.
@Author: twlkyaopackage twlkyao;public class A { public A() { Inner inner = new Inner(); inner.outer(); // 내부 클래스의 외부 메서드를 호출합니다. // A의 외부 메서드를 호출합니다. . } 공공 void 외부() { System.out.println("외부 실행") } 클래스 내부 { 공공 void 외부(){ System.out.println("내부 run"); A.this.outer(); // A의 외부 메서드를 호출합니다. System.out.println("---------"); } } public static void main(String[] args) { A a = 새로운 A() }}
Inner는 클래스 A의 external() 메서드에 액세스하는 내부 클래스입니다. 익명의 내부 클래스에도 동일한 메서드가 있으므로 A의 this 포인터를 사용하여 정규화해야 합니다.
출력은 다음과 같습니다
내부 런아웃 실행---------외부 실행