Rumah > Java > javaTutorial > Mengapa Kelas Luar Boleh Mengakses Ahli Persendirian Kelas Dalam di Java?

Mengapa Kelas Luar Boleh Mengakses Ahli Persendirian Kelas Dalam di Java?

Patricia Arquette
Lepaskan: 2024-12-07 12:09:11
asal
388 orang telah melayarinya

Why Can Outer Classes Access Inner Class Private Members in Java?

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?
    }
}
Salin selepas log masuk

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!

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