Mensimulasikan Konsep 'rakan' C dalam Java
Java tidak menawarkan konsep 'rakan' yang jelas seperti yang dilihat dalam C yang membenarkan kelas daripada pakej yang berbeza untuk mengakses ahli bukan awam. Walau bagaimanapun, teknik bijak boleh digunakan untuk meniru tingkah laku ini.
Menerap 'rakan' C dalam Java
Pertimbangkan dua kelas, Romeo dan Juliet, dalam pakej yang berasingan. Juliet mahu menyekat akses kepada kaedahnya kepada Romeo. Dalam C , ini boleh dicapai dengan mengisytiharkan Romeo sebagai 'kawan' Juliet.
Di Jawa, kesan serupa boleh dicapai melalui penggunaan pembina peribadi dan rujukan statik.
public static void cuddle(Romeo.Love love) { if (love == null) throw new NullPointerException(); System.out.println("O Romeo, Romeo, wherefore art thou Romeo?"); }
public static final class Love { private Love() {} }
Hanya Romeo boleh membina contoh Romeo.Love. Romeo kemudian mencipta rujukan Romeo.Love akhir statik:
private static final Love love = new Love();
public static void cuddleJuliet() { Juliet.cuddle(love); }
Hanya Romeo boleh melaksanakan kaedah cuddle Juliet kerana ia mempunyai akses kepada contoh Romeo.Cinta. Kelas lain tidak boleh meniru Romeo.Love memandangkan pembinanya bersifat peribadi.
Teknik ini membolehkan Romeo mengakses kaedah peluk Juliet sambil menyekat akses daripada kelas lain, dengan berkesan mensimulasikan konsep 'rakan' di Jawa, di mana Juliet hanya mempercayai Romeo .
Atas ialah kandungan terperinci Bagaimana Anda Boleh Mensimulasikan Konsep 'kawan' C di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!