Mensimulasikan Konsep 'rakan' C dalam Java
Untuk memberikan akses terus kepada kaedah persendirian antara kelas daripada pakej yang berbeza di Jawa, pertimbangkan teknik berikut:
Langkah 1: Buat "Tandatangan Keselamatan" Kelas
Dalam pakej kelas yang inginkan akses, tentukan kelas awam yang bertindak sebagai "tandatangan keselamatan". Kelas ini hanya boleh diakses dalam pakejnya.
Langkah 2: Hadkan Pembina
Jadikan pembina kelas tandatangan keselamatan peribadi. Ini memastikan bahawa hanya kelas dalam pakejnya boleh membuat instantiatenya.
Langkah 3: Buat Rujukan Statik
Isytihar pembolehubah statik jenis kelas tandatangan keselamatan. Ini membolehkan akses mudah kepada objek tandatangan.
Langkah 4: Tentukan Kaedah Sasaran
Dalam kelas yang ingin membenarkan akses terhad, tentukan kaedah yang memerlukan kelas tandatangan keselamatan sebagai hujah. Kaedah ini harus mempunyai kebenaran akses yang sesuai, seperti awam atau dilindungi.
Contoh:
Pertimbangkan senario di mana kelas Romeo (dalam pakej Montague) mahu mengakses bukan- kaedah awam kelas Juliet (dalam pakej Capulet).
Juliet.java:
package capulet; public class Juliet { public void cuddle(Romeo.Love love) { if (love == null) { throw new NullPointerException(); } System.out.println("O Romeo, Romeo, wherefore art thou Romeo?"); } }
Romeo.java:
package montague; public class Romeo { public static final class Love { private Love() {} } private static final Love love = new Love(); public void cuddleJuliet() { Juliet.cuddle(love); } }
Dalam contoh ini , kelas Romeo.Love bertindak sebagai tandatangan keselamatan. Hanya Romeo yang boleh membinanya kerana pembina peribadinya. Kaedah peluk dalam Juliet memerlukan contoh Romeo.Love untuk melaksanakan, yang boleh disediakan oleh Romeo. Ini menghalang akses tanpa kebenaran daripada kelas lain di luar pakej Montague.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Fungsi `rakan` C di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!