Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengakses Objek Kelas Luar dari Dalam Kelas Dalam Java?

Bagaimanakah Saya Boleh Mengakses Objek Kelas Luar dari Dalam Kelas Dalam Java?

Susan Sarandon
Lepaskan: 2024-12-30 14:57:10
asal
320 orang telah melayarinya

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

Mengakses Objek Kelas Luar daripada Kelas Dalam

Di Java, adalah mungkin untuk mencipta kelas dalam yang mempunyai akses kepada pembolehubah persendirian dan kaedah kelas luar tertutup mereka. Walau bagaimanapun, mengakses objek kelas luar daripada kelas dalam itu sendiri boleh menjadi sedikit rumit.

Untuk mencapai ini, kelas dalam boleh menggunakan sintaks OuterClass.ini. Ungkapan ini merujuk kepada contoh khusus kelas luar yang mencipta objek kelas dalam. Ia membenarkan kelas dalam mengakses ahli dan menggunakan kaedah kelas luar.

// InnerClass.java
kelas awam InnerClass {
nama Rentetan peribadi = "Peakit";
awam OuterClass outer() {

return OuterClass.this;
Salin selepas log masuk

}
}

Dalam coretan kod yang disediakan, kelas dalam InnerClass mempunyai kaedah outer() yang mengembalikan tika OuterClass. Kaedah ini membolehkan anda mendapatkan objek kelas luar dari dalam kelas dalam:

// OuterClass.java
kelas awam 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 :-( ");
}
Salin selepas log masuk

}
}

Dalam contoh ini, kaedah outer() mengembalikan contoh kelas luar, yang kemudiannya diberikan kepada pembolehubah Luar yang lain. Jika satu lagiOuter dan outer merujuk objek yang sama, ia menunjukkan bahawa objek kelas luar telah berjaya diambil dari dalam kelas dalam.

Perlu diperhatikan bahawa sintaks OuterClass.this hanya boleh diakses dalam kelas dalam itu sendiri . Jika anda tidak mempunyai kawalan ke atas kelas dalam untuk mengubah suai kodnya, tiada cara lain untuk mendapatkan secara langsung objek kelas luar daripada objek kelas dalam.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Objek Kelas Luar dari Dalam Kelas Dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan