Heim >Backend-Entwicklung >C++ >Wie kann Java die Friend-Class-Funktionalität von C nachahmen?
Replikation des C-„Friend“-Konzepts in Java
In C ermöglicht das „Friend“-Konzept Klassen in verschiedenen Paketen den Zugriff auf nicht-öffentliche Pakete Mitglieder anderer Klassen. In Java fehlt ein direktes Äquivalent, aber es bietet einen cleveren Workaround mit verschachtelten Klassen.
Implementierung
Betrachten Sie zwei Klassen, Romeo und Juliet, aus verschiedenen Paketen. Romeo möchte auf Julias private Methoden zugreifen, ohne sie in eine Unterklasse zu unterteilen. So erreichen Sie dies mithilfe verschachtelter Klassen:
// 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 } }
In diesem Beispiel:
Das obige ist der detaillierte Inhalt vonWie kann Java die Friend-Class-Funktionalität von C nachahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!