Menyediakan Akses Terhad kepada Kaedah Peribadi di Java
Di Jawa, tidak mungkin untuk meniru konsep "rakan" C, yang membenarkan akses kepada ahli persendirian kelas kepada entiti luar. Walau bagaimanapun, tingkah laku yang sama boleh dicapai menggunakan teknik alternatif.
Pendekatan Tandatangan Cinta
Satu pendekatan bijak untuk mencapai akses terkawal adalah dengan menggunakan tandatangan "rahsia". Begini cara ia berfungsi:
Contoh:
Pertimbangkan dua kelas, Romeo dan Juliet, daripada pakej yang berbeza. Romeo perlu mengakses kaedah persendirian dalam Juliet tanpa menjadikannya subkelas.
Kod Juliet:
// Capulet package public class Juliet { public static void cuddle(Romeo.Love love) { Objects.requireNonNull(love); // Juliet's private methods can be accessed here. } }
Romeo.Love ialah kelas awam dengan pembina persendirian, memastikan hanya Romeo boleh membuat contoh.
Romeo's Kod:
// Montague package public class Romeo { public static final class Love { private Love() {} } private static final Love love = new Love(); public static void cuddleJuliet() { Juliet.cuddle(love); } }
Pendekatan ini memanfaatkan eksklusiviti pembina kelas tandatangan untuk memberikan akses terpilih kepada kaedah yang diingini sambil mengekalkan pengkapsulan dan privasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Akses Terhad kepada Kaedah Peribadi di Jawa Tanpa Menggunakan Konsep 'Rakan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!