Menerap Konsep 'rakan' C dalam Java
Dalam C , konsep 'rakan' membenarkan kelas dalam pakej yang berbeza untuk mengakses bukan awam ahli kelas lain. Java tidak mempunyai persamaan langsung, tetapi ia menyediakan penyelesaian yang bijak menggunakan kelas bersarang.
Pelaksanaan
Pertimbangkan dua kelas, Romeo dan Juliet, daripada pakej yang berbeza. Romeo ingin mengakses kaedah bukan umum Juliet tanpa mengklasifikasikannya. Begini cara untuk mencapainya menggunakan kelas bersarang:
// Juliet's package public class Juliet { private void cuddle() { System.out.println("O Romeo, Romeo, wherefore art thou Romeo?"); } // Signature security for cuddle public static class CuddleAllowed { private CuddleAllowed() {} } private static final CuddleAllowed cuddleAllowed = new CuddleAllowed(); public void cuddle(Juliet.CuddleAllowed cuddle) { cuddle(); // Juliet can cuddle herself if (cuddle == cuddleAllowed) { System.out.println("Only Romeo can cuddle Juliet."); } } } // Romeo's package public class Romeo { public static void cuddleJuliet() { Juliet juliet = new Juliet(); juliet.cuddle(Juliet.cuddleAllowed); // Romeo can cuddle Juliet } }
Dalam contoh ini:
Atas ialah kandungan terperinci Bagaimanakah Kefungsian Kelas Rakan Java Mimic C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!