Heim  >  Artikel  >  Java  >  Ausführliche Erklärung zur Verwendung des privaten Konstruktors in Java

Ausführliche Erklärung zur Verwendung des privaten Konstruktors in Java

黄舟
黄舟Original
2017-09-14 10:48:521821Durchsuche

Dieser Artikel stellt hauptsächlich die Bedeutung und Schlüsselwörter des privaten Java-Konstruktors vor und zeigt Ihnen anhand von Beispielen, wie Sie ihn verwenden können. Freunde in Not können darauf verweisen.

Der Konstruktor ist eine spezielle Funktion der Java-Klasse. Mitglieder können dies auch tun Legen Sie Schlüsselwörter fest, um ihre Zugriffsrechte zu steuern. In den meisten Fällen legen wir den Konstruktor im Allgemeinen als öffentliches Mitglied fest, d. h. wenn keine Schlüsselwörter geschrieben werden, sind seine Zugriffsrechte ebenfalls öffentlich. Auf diese Weise wird der Konstruktor beim Erstellen eines neuen Objekts einer Klasse automatisch aufgerufen, nachdem das Objekt erstellt wurde, und zwar nachdem andere Klassenmitglieder auf ihre Standardanfangswerte gesetzt wurden. Natürlich, wenn es Feldinitialisierer und Initialisierungen gibt Blöcke, der Aufruf des Konstruktors erfolgt danach. Die Hauptfunktion des Konstruktors besteht darin, das Objekt zu initialisieren, bevor new eine Referenz auf das Objekt zurückgibt.

Um auf das Thema zurückzukommen: Was ist ein privater Bauunternehmer? Der sogenannte private Konstruktor ist ein Konstruktor, der mit dem privaten Schlüsselwort deklariert wurde, dh ein Konstruktor, der mit dem privaten Schlüsselwort deklariert wurde. . Der größte Unterschied zu einem allgemeinen öffentlichen Konstruktor besteht darin, dass seine Zugriffsberechtigung privat ist, sodass nur die Klasse, die ihn enthält, auf ihn zugreifen kann und nicht außerhalb der Klasse aufgerufen werden kann, sodass die Generierung von Objekten verhindert werden kann. Wenn eine Klasse nur einen privaten Konstruktor und keine öffentlichen Konstruktoren hat, können daher keine Objekte generiert werden.

Da der Konstruktor einer Klasse privat ist, kann diese Klasse weder instanziiert noch vererbt werden. Artikel 3 von „Effektives Java“: Verwenden Sie private Konstruktoren oder Aufzählungen, um Singleton-Eigenschaften zu verbessern. Das sogenannte Singleton-Attribut bezieht sich auf eine Klasse, die nur einmal instanziiert wird. Artikel 4: Verbessern Sie die Nicht-Instanziabilitätsfähigkeiten durch private Konstruktoren. Es gibt zwei Möglichkeiten, Singleton in Java zu implementieren:


public class Elvis {
 public static final Elvis INSTANCE = new Elvis();
 private Elvis() {}
}


public class Elvis {
 private static final Elvis INSTANCE = new Elvis();
 private Elvis() {}
 public static Elvis getInstance() { return INSTANCE;}
}

Methode 1: Private Konstruktoren können nur einmal aufgerufen werden Es wird verwendet, um das öffentliche statische Endfeld Elvis.INSTANCE zu instanziieren. Sobald Elvis instanziiert ist, gibt es nur eine Elvis-Instanz (privilegierte Clients können die AccessibleObject.setAccessible-Methode verwenden, um den privaten Konstruktor über den Reflexionsmechanismus aufzurufen). >

Methode 2: Verwenden Sie die statische Methode getInstance, um einen Verweis auf dasselbe Objekt zurückzugeben und niemals andere Evlis-Instanzen zu erstellen.


Warum benötigen Sie einen privaten Konstruktor? Wie verwende ich die Methoden dieser Klasse, wenn die Klasse nicht instanziiert werden kann?


Das Vorhandensein privater Konstruktoren kann verhindern, dass bestimmte Klassen instanziiert und in Unterklassen unterteilt werden. Bei diesen Klassen handelt es sich normalerweise um Werkzeugklassen wie java.lang.Math usw. Um auf die Methoden dieser Klassen zuzugreifen, sind wir für Sie zuständig kann öffentliche statische Methoden definieren, um dies zu erreichen, wie zum Beispiel A.methon()


public class A {
 private A() {}
 public static void methon() {}    
}
Die Verwendung privater Konstruktoren in java.lang.Math ist in der zu sehen Mathe-Klasse ist als final definiert und verwendet einen privaten Konstruktor. Ihre Methoden sind alle statisch, daher ist zum Aufrufen ihrer Methoden nur Math.sin(x) erforderlich:


Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung des privaten Konstruktors in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn