Rumah  >  Artikel  >  Java  >  Bagaimana Anda Boleh Mensimulasikan Konsep 'kawan' C di Jawa?

Bagaimana Anda Boleh Mensimulasikan Konsep 'kawan' C di Jawa?

Susan Sarandon
Susan Sarandonasal
2024-11-11 05:48:03396semak imbas

How Can You Simulate C  's 'friend' Concept in Java?

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.

  1. Kaedah peluk Juliet menjadi umum tetapi memerlukan hujah Romeo.Love:
public static void cuddle(Romeo.Love love) {
    if (love == null) throw new NullPointerException();
    System.out.println("O Romeo, Romeo, wherefore art thou Romeo?");
}
  1. Romeo mentakrifkan kelas bersarang statik awam Love dengan pembina peribadi:
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();
  1. Kaedah cuddleJuliet Romeo:
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn