Rumah > Java > javaTutorial > Bolehkah Java Meniru Konsep C 'Rakan'?

Bolehkah Java Meniru Konsep C 'Rakan'?

Patricia Arquette
Lepaskan: 2024-11-10 05:07:02
asal
557 orang telah melayarinya

Can Java Replicate the C   'Friend' Concept?

Bolehkah Anda Meniru Konsep C 'Rakan' di Jawa?

Di Jawa, secara amnya tidak mungkin untuk kelas dalam satu pakej untuk mengakses ahli bukan awam kelas dalam pakej lain. Walau bagaimanapun, terdapat helah yang boleh digunakan untuk mensimulasikan tingkah laku ini.

Helahnya

Helah itu melibatkan penggunaan kelas bersarang dengan pembina peribadi. Kelas bersarang ini bertindak sebagai "keselamatan tandatangan" untuk kaedah yang anda ingin hadkan akses. Berikut ialah contoh:

// Package: capulet
public class Juliet {

    public static void cuddle(Romeo.Love love) {
        // Check that the love is real (null check)
        Objects.requireNonNull(love);
        
        // Call the cuddle method
        System.out.println("O Romeo, Romeo, wherefore art thou Romeo?");
    }
    
}
Salin selepas log masuk
// Package: montague
public class Romeo {
    // Nested class with private constructor
    public static final class Love { private Love() {} }
    
    // Static reference to the love class
    private static final Love love = new Love();
    
    // Public method to cuddle Juliet using the nested class
    public static void cuddleJuliet() {
        Juliet.cuddle(love);
    }
}
Salin selepas log masuk

Dalam contoh ini, kelas Romeo.Love bersarang dalam kelas Romeo dan mempunyai pembina peribadi. Ini bermakna tiada kelas lain boleh membina contoh Romeo.Love. Kelas Juliet mempunyai kaedah awam yang dipanggil cuddle yang mengambil contoh Romeo.Cinta sebagai parameter.

Memandangkan hanya kelas Romeo boleh mencipta tika Romeo.Love, hanya kelas Romeo boleh memanggil kaedah cuddle. Ini secara berkesan mengehadkan akses kepada kaedah peluk kepada kelas Romeo, meniru gelagat konsep rakan C.

Atas ialah kandungan terperinci Bolehkah Java Meniru Konsep C 'Rakan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan