โดยทั่วไปแล้วในภาษา Java ตัวชี้นี้จะอ้างถึงอ็อบเจ็กต์ของโค้ดที่กำลังเข้าถึงอยู่ อย่างไรก็ตาม หากคุณต้องการใช้อ็อบเจ็กต์ในคลาสภายนอกในคลาสภายใน คุณจะต้องใช้ชื่อคลาสของคลาสภายนอกเพื่อให้มีคุณสมบัติ มัน. วิธีนี้ยังพบได้บ่อยในการพัฒนา Android
@Author: twlkyaopackage twlkyao;public class A { public A() { Inner Inner = new Inner(); Inner.outer(); // เรียกเมธอดภายนอกของคลาสภายใน this.outer(); . } โมฆะสาธารณะด้านนอก () { System.out.println ("outer run"); } คลาสภายใน { โมฆะสาธารณะด้านนอก () { System.out.println ("inner run"); A.this.outer (); // เรียกวิธีภายนอกของ A System.out.println ("--------"); } } โมฆะคงที่สาธารณะ main (String [] args) { ก = ใหม่ ก(); }}
Inner เป็นคลาสภายในที่เข้าถึงเมธอด external() ในคลาส A เนื่องจากคลาสภายในที่ไม่ระบุชื่อมีเมธอดเดียวกัน จึงจำเป็นต้องผ่านการรับรองโดยใช้ตัวชี้ของ A
ผลลัพธ์คือ:
การวิ่งด้านนอกภายใน -------- การวิ่งด้านนอก