Dieser Artikel untersucht hauptsächlich Inhalte zur Kontrolle der Java -Programmierzugriffsrechte wie folgt.
Für Modifikatoren, auf die ich vorher nicht geachtet habe, wurden Variablen vorher nicht hinzugefügt, einer war, weil ich nicht wusste, wofür es war, und der andere war, weil ich faul war. Als ich später auf ein Projekt stieß, stellte ich fest, dass es immer noch einen großen Unterschied zwischen privat und öffentlich gab.
(1) Zunächst der Paketname
Wenn Sie eine Klasse wie eine Sammelklasse verwenden, müssen Sie dieses Paket vorstellen und dann die Klasse unter dem Paket verwenden. wie:
Paket com.myown.iaiti; public class print {static void print (string s) {System.out.println (s); }}Angepasste Pakete, indem Sie Ihre eigenen Pakete vorstellen, können Sie die Methode, die Sie in Zukunft an Druckketten geschrieben haben, verwenden. Ich habe zuvor versucht, den Pfad meines eigenen Pakets in Klassenpfad zu setzen. Wenn Sie also in anderen Verzeichnissen zusammenstellen, müssen Sie das Paket nicht in dieses Verzeichnis einfügen, und es kann auch normal ausgeführt werden, sonst wird das JAR -Paket nicht gefunden.
(2) öffentlich
Öffentliche, in der Vergangenheit, in der Vergangenheit benutzten Lehrer Lao Tzu oft als Metapher. Dies ist eine öffentliche Sache, ich werde es für Sie verwenden. Die Öffentlichkeit folgt den Datenmitgliedern genau, was bedeutet, dass es allen zur Verfügung steht.
(3) privat
Privat, privat, mein Privateigentum, berühre es nicht. Mit Ausnahme der Klasse, die dieses Datenmitglied in dem Paket enthält, das verwendet werden kann, können andere Klassen nicht verwendet werden. Dieser Teil ist etwas, das der Designer selbst nicht für Außenstehende zeigen oder ändern möchte.
public class print {public static void main (String [] args) {getit g = new getit (); }} Klasse getit {// Beachten Sie, dass eine Datei nur eine öffentliche Klasse haben kann. Wenn Sie die Öffentlichkeit vor // hinzufügen möchten, schreibenDer Konstruktor getit () ist nicht sichtbar, es ist nicht sichtbar, es ist zu erkennen, dass er nützlich ist. Das Singleton -Muster wird ebenfalls auf diese Weise verwendet, wodurch die Erstellung von Objekten kontrolliert wird.
Anwendung des Singleton -Modus:
Klasse A {privat a () {} private static a a = new a (); public static a getInstace () {return a; }}Andere Klassen können keine Objekte durch neu erstellen, da der Konstruktor durch private geändert wird. Der Zweck ist, dass ich, wenn diese Klasse A extrem komplex ist und das Gedächtnis verbraucht, die Erstellung von Objekten streng steuern muss. Da wir einen einzigen Fall gegeben haben, werden wir übrigens über den Einzelfall sprechen. Ich habe schon einige Menschen Schriften gelesen, es ist so klassisch und erstaunlich.
Das obige ist ein hungriger Mann, der Ihnen dabei hilft, neu zu werden, sobald Sie kommen, und ihn direkt zu verwenden, wenn Sie in Zukunft neu werden. Es gibt kein Fadenproblem. Der Nachteil ist, dass es eine Verschwendung von Ressourcen sein wird, wenn es nutzlos ist.
Fauler Stil
public class a {privat a () {} private static a a; public static a getInstance () {if (a == null) {return a = new a (); } else {return a; }}}Es wird Ihnen bei der Verwendung neu helfen, wenn Sie es verwenden, und es wird neu sein, wenn Sie es verwenden, aber es gibt ein Threading -Problem. Wenn Sie synchronisiert addieren, wird die Effizienz reduziert, da eine davon bei einer Verwendung besetzt ist.
Der perfekte Weg ist, beide zu kombinieren:
öffentliche Klasse A {// private statische innere Klasse wird nur dann geladen, wenn eine Referenz private statische Klasse Lazya {public static aa = new a () gibt; } public static a getInstance () {return lazya.a; }}Ich kann diese sogenannte statische innere Klasse vorher nicht verstehen. Die Funktion besteht darin, eine verzögerte Belastung zu erreichen, da sie nur dann verwendet wird, wenn sie neu sind. Verwenden Sie die GetInstance -Methode. Es gibt kein Multi-Threading-Problem, da die statische Klasse zu allen externen Klassenobjekten gehört und nur einmal geladen wird. Nachdem die statische innere Klasse instanziiert ist, handelt es sich um ein Attribut auf Klassenebene, das nicht zu einem bestimmten Objekt gehört, sondern nur einmal geladen wird. Auf diese Weise wird es keinen Ressourcenabfall geben und es gibt kein Problem der Ineffizienz der Multi-Threading. Die Person, die diese Methode entwickelt hat, ist wirklich erstaunlich.
(4) geschützt
Druck ist die Basiskategorie. Chinesen sprechen gerne über die Kategorie der Eltern, aber Ausländer denken, dass Unterkategorien großartiger sind. Die Basiskategorie ist eine Stiftung oder Stiftung. Geschützt ist die Eigenschaft, die ich speziell meinem Sohn überlassen habe.
public class print {protected void print () {} private void kann nicht print () {}} public class verlängert Print {void get () {print (); // kann nicht print (); Private private Methode, Unterklassen können immer noch nicht verwendet werden}} öffentliche Klasse Notson {void get () {print (); }}Die geschützte modifizierte Unterklasse kann zwischen öffentlich und privat erhalten werden.
(5) Zugriffsberechtigungen für die Klasse
Jede Datei kann nur eine öffentliche Klasse haben.
Der Klassenname und der Dateiname sind gleich.
Wenn Sie kein grundlegendes Fundament haben, ist es ein bisschen vorab, aber nachdem die Wissenspunkte verbessert sind, ist es leicht zu verstehen. Die Kontrolle der Zugriffsrechte hängt weiterhin davon ab, ob Sie Ihren Teil Ihres Codes direkt für andere verwenden möchten.
Zusammenfassen
Das obige ist die detaillierte Erklärung des Kontrollcode für Java -Programmierzugriffsberechtigungen in diesem Artikel. Ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!