Akses Kelas Luar Java kepada Ahli Persendirian Kelas Dalam
Soalan:
Mengapa dilakukan luar kelas mempunyai keupayaan untuk mengakses pembolehubah contoh peribadi kelas dalam, walaupun ia diisytiharkan peribadi? Pertimbangkan kod berikut:
class ABC { class XYZ { private int x = 10; } public static void main(String[] args) { ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: " + xx.x); // Why is this allowed? } }
Jawapan:
Kelas dalaman di Java adalah unik kerana mereka mempunyai akses yang wujud kepada kelas luar, termasuk ahli peribadinya. Ini disebabkan oleh reka bentuk kelas dalam, yang pada asasnya merupakan ahli kelas luar mereka.
Sebab di sebalik akses ini ialah kelas dalam berkait rapat dengan kefungsian kelas luar mereka. Mereka merangkum fungsi yang khusus untuk kelas luar dan tidak masuk akal sebagai kelas kendiri. Oleh itu, mereka mempunyai akses penuh kepada kelas luar, termasuk ahli persendiriannya.
Reka bentuk ini membolehkan pengkapsulan dan modulariti yang lebih baik dalam kelas. Ia membolehkan kelas dalaman beroperasi pada data peribadi kelas luar, yang tidak mungkin dilakukan dengan struktur kelas tradisional. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa akses ini hanya diberikan kepada kelas dalam dan bukan kepada kelas lain atau kod luaran.
Atas ialah kandungan terperinci Mengapa Kelas Luar Boleh Mengakses Ahli Persendirian Kelas Dalam di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!