zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

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!"

Syntax der Definition von Konstruktoren (Konstruktormethoden)

Die Klasse braucht eine Konstruktormethode. Definitionen von Konstruktoren sehen wie folgt aus:

Klassenname( parameterliste )
{
  Anweisungen, die üblicherweise die Variablen der Klasse
  und die Parameter der parameterListe 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 keine return-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.

FRAGE 17:

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()