Die Java-Konstruktormethode

Erstellen Sie ein Objekt mit einem Java-Konstruktor

Junger Mann versucht mit seinem Laptop, Probleme mit Code zu lösen

Emilija Manevska / Getty Images





Ein Java-Konstruktor erstellt eine neue Instanz eines bereits definierten Objekts. Dieser Artikel beschreibt die Verwendung von Java-Konstruktormethoden zum Erstellen eines Person-Objekts.

Notiz: Für dieses Beispiel müssen Sie zwei Dateien im selben Ordner erstellen: Person.java definiert die Person-Klasse und PersonExample.java enthält die Hauptmethode die Person-Objekte erstellt.



Die Konstruktormethode

Beginnen wir mit der Erstellung einer Person-Klasse mit vier privaten Feldern: firstName, lastName, address und username. Diese Felder sind private Variablen und zusammen bilden ihre Werte den Zustand eines Objekts. Wir haben auch die einfachsten Konstruktormethoden hinzugefügt:

|_+_||_+_|

Die Konstruktormethode ähnelt jeder anderen öffentlichen Methode, außer dass sie den gleichen Namen wie die Klasse hat und keinen Wert zurückgeben kann. Es kann keinen, einen oder viele Parameter haben.



Derzeit macht unsere Konstruktormethode überhaupt nichts, und es ist ein guter Zeitpunkt, darüber nachzudenken, was dies für den Anfangszustand des Person-Objekts bedeutet. Wenn wir die Dinge so lassen, wie sie sind, oder wir keine Konstruktormethode in unsere Person-Klasse (in Java Sie können eine Klasse ohne eine Klasse definieren), dann hätten die Felder keine Werte – und wir möchten auf jeden Fall, dass unsere Person einen Namen und eine Adresse sowie andere Merkmale hat. Wenn Sie glauben, dass Ihr Objekt möglicherweise nicht wie erwartet verwendet wird und die Felder bei der Erstellung des Objekts nicht initialisiert werden, definieren Sie sie immer mit einem Standardwert:

|_+_||_+_|

Um sicherzustellen, dass eine Konstruktormethode nützlich ist, würden wir sie normalerweise so entwerfen, dass sie Parameter erwartet. Die durch diese Parameter übergebenen Werte können verwendet werden, um die Werte der privaten Felder festzulegen:

|_+_||_+_|

Unsere Konstruktormethode erwartet nun die Übergabe der Werte von vier Strings. Sie werden dann verwendet, um den Anfangszustand des Objekts festzulegen. Wir haben auch eine neue Methode namens hinzugefügt AnzeigePersonDetails() damit wir den Zustand des Objekts sehen können, nachdem es erstellt wurde.

Aufruf der Konstruktormethode

Im Gegensatz zu anderen Methoden eines Objekts muss die Konstruktormethode mit dem Schlüsselwort „new“ aufgerufen werden:



|_+_||_+_|

Folgendes haben wir getan:

  1. Um die neue Instanz des Person-Objekts zu erstellen, definieren wir zunächst eine Variable vom Typ Person, die das Objekt enthält. In diesem Beispiel haben wir es aufgerufen dave .
  2. Auf der anderen Seite des Gleichheitszeichens rufen wir die Konstruktormethode unserer Person-Klasse auf und übergeben ihr vier Zeichenfolgenwerte. Unsere Konstruktormethode nimmt diese vier Werte und setzt den Anfangszustand des Person-Objekts wie folgt: firstName = 'Dave', lastName = 'Davidson', address = '12 Main St', username = 'DDavidson'.

Beachten Sie, wie wir zur Java-Hauptklasse gewechselt haben, um das Person-Objekt aufzurufen. Wenn Sie mit Objekten arbeiten, werden sich Programme erstrecken mehrere .java-Dateien . Stellen Sie sicher, dass Sie sie im selben Ordner speichern. Um das Programm zu kompilieren und auszuführen, kompilieren Sie einfach Java und führen Sie es aus Hauptklasse Datei (d.h. PersonExample.java ). Der Java-Compiler ist intelligent genug, um zu erkennen, dass Sie die kompilieren möchten Person.java -Datei, da sie sehen kann, dass Sie sie in der PersonExample-Klasse verwendet haben.



Benennung von Parametern

Der Java-Compiler wird verwirrt, wenn die Parameter der Konstruktormethode die gleichen Namen haben wie die privaten Felder. In diesem Beispiel sehen Sie, dass wir zwischen ihnen unterschieden haben, indem wir den Parametern das Wort „Person“ vorangestellt haben. Es ist erwähnenswert, dass es einen anderen Weg gibt. Wir können stattdessen das Schlüsselwort „this“ verwenden:

|_+_||_+_|

Das Schlüsselwort „this“ teilt dem Java-Compiler mit, dass die Variable, der der Wert zugewiesen werden soll, diejenige ist, die von der Klasse definiert wird, nicht der Parameter. Es ist eine Frage des Programmierstils, aber diese Methode hilft uns, Konstruktorparameter zu definieren, ohne mehrere Namen verwenden zu müssen.



Mehr als eine Konstruktormethode

Beim Entwerfen Ihrer Objektklassen sind Sie nicht darauf beschränkt, nur eine Konstruktormethode zu verwenden. Sie könnten entscheiden, dass es mehrere Möglichkeiten gibt, ein Objekt zu initialisieren. Die einzige Einschränkung bei der Verwendung von mehr als einer Konstruktormethode besteht darin, dass sich die Parameter unterscheiden müssen.

Stellen Sie sich vor, dass wir zum Zeitpunkt der Erstellung des Person-Objekts den Benutzernamen möglicherweise nicht kennen. Lassen Sie uns eine neue Konstruktormethode hinzufügen, die den Status des Person-Objekts festlegt, indem nur firstName, lastName und address verwendet werden:



|_+_||_+_|

Beachten Sie, dass die zweite Konstruktormethode ebenfalls „Person“ heißt und auch keinen Wert zurückgibt. Der einzige Unterschied zwischen ihr und der ersten Konstruktormethode sind die Parameter – diesmal wird nur erwartet drei Zeichenfolgenwerte: Vorname, Nachname und Adresse.

Wir können jetzt Personenobjekte auf zwei verschiedene Arten erstellen:

|_+_||_+_|

Person dave wird mit Vorname, Nachname, Adresse und Benutzername erstellt. Person Jim, erhält jedoch keinen Benutzernamen, d. h. der Benutzername ist die leere Zeichenfolge: username = ''.

Eine kurze Zusammenfassung

Konstruktormethoden werden nur aufgerufen, wenn eine neue Instanz eines Objekts erstellt wird. Sie:

  • Muss denselben Namen wie die Klasse haben
  • Geben Sie keinen Wert zurück
  • Kann keine, eine oder haben viele Parameter
  • Kann mehrere sein, solange jede Konstruktormethode einen anderen Satz von Parametern hat
  • Kann haben Parameternamen dasselbe wie die privaten Felder, solange das Schlüsselwort 'this' verwendet wird
  • Werden mit dem Schlüsselwort „new“ aufgerufen