zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein.

Die Arbeit hinter den Kulissen

Der Standardkonstruktor macht, wenn er verwendet wird, eine ganze Menge "hinter den Kulissen". Er arbeitet mit dem Betriebssystem, um Hauptspeicher für das Objekt zu finden, den Speicher für das Objekt einzurichten, stellt die Variablen und die in der Klassendefinition spezifizierten Methoden hinein und gibt eine Objektreferenz an Ihr Programm zurück. All das ist ganz schön kompliziert, und Sie haben Glück, dass Sie es nicht schreiben müssen.

Sie müssen einen Konstruktor in die Klassendefinition aufnehmen, wenn Sie Variablen initialisieren müssen. Das kann natürlich nicht automatisch geschehen, da der Compiler nicht wissen kann wie Sie Ihre Variablen initialisieren möchten. Alles was Sie tun müssen, um einer Klassendefinition einen Konstruktor hinzufügen, ist die Anweisungen zu schreiben, die die Variablen initialisieren. Der Konstruktor macht immer noch die ganze Arbeit, "hinter den Kulissen".

Syntaxregel: Wenn Sie Konstruktoren für eine Klasse definieren, dann sind diese die einzigen Konstruktoren, die die Klasse hat. Der Standardkonstruktor wird nur dann automatisch zur Verfügung gestellt, wenn Sie keine Konstruktoren definieren.

Diese Regel macht wirklich Sinn. Wenn Sie Konstruktoren für eine Klasse definieren liegt es nahe, dass Sie die Kontrolle über die Vorgänge haben wollen und keinen Standardkonstruktor brauchen.

FRAGE 13:

(Designfrage: ) In unserer bisherigen Konzeption gibt jedes HalloObjekt den gleichen String auf den Bildschirm aus. Wie kann diese Klasse verbessert werden?