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

Die Klasse braucht einen Konstruktor. 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 automatisch eine Referenz auf ein Objekt der Klasse. Es gibt keine return-Anweisung im Körper des Konstruktors. Eine Referenz wird automatisch, ohne dass Sie 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, Sie 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()