Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mencapai Akses Terhad kepada Kaedah Peribadi di Jawa Tanpa Menggunakan Konsep 'Rakan'?

Bagaimanakah Saya Boleh Mencapai Akses Terhad kepada Kaedah Peribadi di Jawa Tanpa Menggunakan Konsep 'Rakan'?

Patricia Arquette
Lepaskan: 2024-11-12 11:50:02
asal
620 orang telah melayarinya

How Can I Achieve Limited Access to Private Methods in Java Without Using the

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:

  1. Buat kelas awam dalam satu pakej yang mewakili "tandatangan rahsia" yang diperlukan untuk mengakses kaedah persendirian dalam pakej lain. Kelas tandatangan ini boleh mengandungi pembina peribadi untuk memastikan eksklusiviti.
  2. Dalam kelas yang memerlukan akses kepada ahli persendirian, tentukan kaedah awam yang menerima tika kelas tandatangan sebagai parameter.
  3. Apabila memanggil kaedah awam daripada pakej lain, contoh kelas tandatangan bertindak sebagai "bukti" untuk membenarkan seruan.

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.
    }
    
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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!

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