Es sieht zwar so aus als ob der Standardkonstruktor nichts macht, aber die Antwort ist nein.
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 zurück. All das ist ganz schön kompliziert, und wir haben Glück, dass wir es nicht schreiben müssen.
Wir müssen nur dann einen eigenen Konstruktor in die Klassendefinition aufnehmen, wenn wir Variablen initialisieren müssen. Das kann natürlich nicht automatisch geschehen, da der Compiler nicht wissen kann wie wir Ihre Variablen initialisieren möchten.
Alles was wir tun müssen, um einer Klassendefinition einen Konstruktor hinzufügen, ist die Anweisungen zu schreiben, die die Variablen initialisieren.Syntaxregel: Wenn wir 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 wir keine Konstruktoren definieren.
Diese Regel macht wirklich Sinn. Wenn wir Konstruktoren für eine Klasse definieren liegt es nahe, dass wir die Kontrolle über die Vorgänge haben wollen und uns daher um alle Konstruktoren kümmern (auch gegebenfalls um einen Standardkonstruktor).
(Designfrage: ) In unserer bisherigen Konzeption
gibt jedes HalloObjekt
den gleichen String auf dem Bildschirm aus.
Wie kann diese Klasse verbessert werden?