Simulasi Konsep Rakan dalam Java
Dalam senario tertentu, anda mungkin inginkan akses kepada kaedah bukan awam bagi kelas dalam pakej yang berbeza tanpa mewujudkan hubungan subkelas. Walaupun bahasa pengaturcaraan C membenarkan ini melalui konsep 'rakan', Java tidak menyediakan persamaan langsung. Walau bagaimanapun, terdapat penyelesaian pintar yang mencontohi fungsi ini.
Pertimbangkan contoh berikut: Kelas Romeo, yang tergolong dalam pakej 'montague', perlu mengakses kaedah bukan awam Kelas Juliet, yang terdapat dalam ' pakej capulet. Biasanya, ini memerlukan Romeo untuk menjadi subkelas Juliet. Tetapi dalam kes ini, pendekatan berbeza dicadangkan.
Juliet mengisytiharkan kaedah statik bernama 'cuddle' yang menerima hujah jenis 'Romeo.Love'. Ini berfungsi sebagai langkah keselamatan, memastikan hanya Romeo boleh menggunakan kaedah ini. Romeo, sebaliknya, mentakrifkan kelas awam bernama 'Cinta' yang pembinanya diisytiharkan peribadi. Ini bermakna tiada kelas lain boleh membuat instantiate 'Romeo.Love', dan hanya Romeo sendiri boleh mengakses pembinanya.
Dengan menggunakan mekanisme ini, Juliet boleh memberikan akses kepada kaedah bukan awamnya hanya kepada entiti yang memiliki contoh 'Romeo.Love'. Dan memandangkan pembina untuk 'Romeo.Love' terhad kepada Romeo sendiri, keselamatan yang dimaksudkan dikekalkan.
Ringkasnya, penyelesaian ini membolehkan simulasi konsep 'rakan' C di Jawa dengan memanfaatkan yang ditakrifkan dengan baik kebenaran kelas dan mekanisme keselamatan.
Atas ialah kandungan terperinci Bolehkah Java Mensimulasikan Konsep Rakan C untuk Mengakses Kaedah Bukan Awam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!