Heim >Backend-Entwicklung >C++ >Wie kann ich die „Friend'-Funktionalität von C in Java simulieren?
Simulation des C-„Friend“-Konzepts in Java
Um direkten Zugriff auf private Methoden zwischen Klassen aus verschiedenen Paketen in Java zu gewähren, berücksichtigen Sie Folgendes Folgende Technik:
Schritt 1: Erstellen Sie eine „Sicherheitssignatur“ Klasse
Definieren Sie innerhalb des Pakets der Klasse, die Zugriff wünscht, eine öffentliche Klasse, die als „Sicherheitssignatur“ fungiert. Auf diese Klasse sollte nur innerhalb ihres Pakets zugegriffen werden können.
Schritt 2: Konstruktor einschränken
Machen Sie den Konstruktor der Sicherheitssignaturklasse privat. Dadurch wird sichergestellt, dass nur die Klasse innerhalb ihres Pakets es instanziieren kann.
Schritt 3: Erstellen Sie eine statische Referenz
Deklarieren Sie eine statische Variable vom Typ Sicherheitssignaturklasse. Dies ermöglicht einen einfachen Zugriff auf das Signaturobjekt.
Schritt 4: Definieren Sie die Zielmethode
Definieren Sie in der Klasse, die eingeschränkten Zugriff zulassen möchte, eine Methode, die erforderlich ist die Sicherheitssignaturklasse als Argument. Diese Methode sollte über entsprechende Zugriffsberechtigungen verfügen, z. B. öffentlich oder geschützt.
Beispiel:
Stellen Sie sich ein Szenario vor, in dem die Klasse Romeo (im Paket Montague) auf nicht- öffentliche Methoden der Klasse Juliet (im Paket Capulet).
Juliet.java:
package capulet; public class Juliet { public void cuddle(Romeo.Love love) { if (love == null) { throw new NullPointerException(); } System.out.println("O Romeo, Romeo, wherefore art thou Romeo?"); } }
Romeo.java:
package montague; public class Romeo { public static final class Love { private Love() {} } private static final Love love = new Love(); public void cuddleJuliet() { Juliet.cuddle(love); } }
In diesem Beispiel , fungiert die Klasse Romeo.Love als Sicherheitssignatur. Aufgrund seines privaten Erbauers kann es nur Romeo bauen. Die Methode „cuddle“ in „Juliet“ erfordert zur Ausführung eine Instanz von Romeo.Love, die Romeo bereitstellen kann. Dies verhindert unbefugten Zugriff von anderen Klassen außerhalb des Montague-Pakets.
Das obige ist der detaillierte Inhalt vonWie kann ich die „Friend'-Funktionalität von C in Java simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!