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
Patricia Arquetteasal
2024-11-12 11:50:02599semak imbas

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.
    }
    
}

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);
    }
}

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!

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