Wo wird in dem obenstehenden Code ein Konstruktor verwendet?
HalloObjekt einObjekt = new HalloObjekt("Eine Mitteilung!");
Was ist sein Parameter? Eine Referenz auf den String "Eine Mitteilung!"
Die Klasse braucht eine Konstruktormethode. Definitionen von Konstruktoren sehen wie folgt aus:
Klassenname( parameterliste )
{
Anweisungen, die üblicherweise die Variablen
der Klasse und die Parameter verwenden.
}
Es wird kein Rückgabetyp vor dem Klassennamen aufgeführt. Der Rückgabetyp ist immer automatisch eine Referenz auf ein Objekt der entsprechenden Klasse.
Es gibt keinereturn
-Anweisung im Körper des Konstruktors.
Eine Referenz wird automatisch, ohne dass wir danach verlangen, zurückgegeben.
(Andernfalls gäbe es keinen Grund für einen Konstruktor.)
Der Konstruktor hat den gleichen Namen wie die Klasse.
Die parameterliste
ist eine Liste der Werte und ihrer Datentypen,
die an den Konstruktor übergeben wird, wenn er ein neues Objekt erstellt.
Parameterlisten sehen wie diese aus (ebenso Parameterlisten für Methoden):
typname1 parametername1, typname2 parametername2, ... so viele wie Sie brauchen
Es ist OK eine leere Parameterliste zu haben. Eine Klasse hat öfters mehrere Konstruktoren mit verschiedenen Parametern. Jeder erstellt dieselbe Klasse von Objekten, aber wird sie unterschiedlich initialisieren.
Normalerweise speichert die Methode, die einen Konstruktor aufruft, die zurückgegebene Referenz in einer Variablen.
Manchmal aber wird ein Objekt nur zum temporären Gebrauch erstellt und seine Referenz wird nicht gespeichert. Das Objekt wird genau einmal für einen kurzen Verwendungszweck gebraucht und wird dann Ausschuss.
Angenommen, wir schreiben eine Klasse mit dem Namen Hundehotel
.
Welche der folgenden sind als erste Zeile eines Konstruktors OK.
Hundehotel( String hundename ) int Hundehotel( String hundename ) void Hundehotel( String hundename ) Hundehotel( hundename ) Hundehotel( String hundename ); Hundehotel()