Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Objek dalam Kelas Yang Sama Boleh Mengakses Medan Persendirian?
Mengakses Medan Peribadi Objek dalam Kelas Yang Sama
Di Java, pengubah suai akses peribadi mengehadkan keterlihatan medan kepada kelas di mana medan itu diisytiharkan. Walau bagaimanapun, salah tanggapan yang lazim ialah sekatan ini terpakai kepada objek dalam kelas yang sama.
Pertimbangkan contoh berikut:
class Person { private BankAccount account; Person(BankAccount account) { this.account = account; } public Person someMethod(Person person) { // Why is accessing private field possible? BankAccount a = person.account; } }
Mengapakah akses person.account boleh dilakukan?
Pengubah suai peribadi menguatkuasakan enkapsulasi untuk melindungi keadaan dalaman objek daripada pengubahsuaian luaran. Walau bagaimanapun, dalam kelas yang sama, objek berkongsi butiran pelaksanaan yang sama. Mereka sedar tentang medan dan kaedah persendirian kelas.
Seperti yang dijelaskan oleh Artemix:
"Ideanya ialah 'dunia luar' tidak seharusnya membuat perubahan kepada proses dalaman Orang kerana pelaksanaan Orang mungkin berubah. masa (dan anda perlu mengubah seluruh dunia luar untuk membetulkan perbezaan dalam pelaksanaan - yang hampir mustahil)."
Memandangkan objek dalam kelas yang sama berkongsi pengetahuan pelaksanaan yang sama, memberikan mereka akses kepada medan peribadi memastikan bahawa mereka sentiasa boleh mengakses dan memanipulasi keadaan dalaman kelas dengan betul. Jika pelaksanaan berubah, hanya kod kelas perlu dikemas kini, menghapuskan keperluan untuk mengubah suai kod di luar kelas.
Oleh itu, reka bentuk OOP membenarkan medan peribadi mempunyai akses peringkat kelas dan bukannya akses peringkat objek kepada memudahkan enkapsulasi sambil mengekalkan konsistensi dalam pelaksanaan kelas.
Atas ialah kandungan terperinci Bagaimanakah Objek dalam Kelas Yang Sama Boleh Mengakses Medan Persendirian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!