Was ist ein Standardkonstruktor?
Ein Standardkonstruktor ist eine spezielle Methode, mit der ein Objekt in der objektorientierten Programmierung erstellt und initialisiert wird. Es gibt mehrere Arten von Konstruktoren, aber ein Standardkonstruktor muss zusätzlich zum Erstellen und Initialisieren eines Objekts eines von zwei spezifischen Kriterien erfüllen. Entweder darf es keine Parameter haben. In diesem Fall kann es auch als Null-Konstruktor bezeichnet werden, oder es muss allen Parametern, die es festlegen kann, Standardwerte zuweisen. Einige Computersprachen geben implizit einen Standard-Nullkonstruktor an, wenn der Programmierer keinen Konstruktor angibt. Sobald ein Konstruktortyp geschrieben wurde, wird der Standard-Nullkonstruktor nicht mehr angegeben und muss bei Bedarf explizit geschrieben werden.
Bei Computersprachen, die eine objektorientierte Vererbung ermöglichen, müssen Standardkonstruktoren in Unterklassen genau mit Konstruktoren in Superklassen verbunden sein. Unterklassenkonstruktoren müssen immer übergeordnete Klassenkonstruktoren aufrufen, bevor sie bestimmte Aktionen für die Unterklasse ausführen können. In einigen Sprachen wie Java® ruft ein Unterklassenkonstruktor implizit einen Standardnullwertkonstruktor der Oberklasse auf. Wenn kein standardmäßiger Nullkonstruktor für Superklassen vorhanden ist, kann das Unterklassenobjekt nicht ordnungsgemäß erstellt werden. Unterklassen können in diesem Fall immer noch einen der beiden Standardkonstruktortypen haben, aber ein verfügbarer Superklassenkonstruktor muss korrekt aufgerufen werden, möglicherweise durch Übergabe von Standardwerten, die für die Unterklasse eindeutig sind.
Die implizite Generierung eines standardmäßigen Nullkonstruktors hat den Vorteil, dass die Anzahl der Methoden, die ein Programmierer spezifizieren und dokumentieren muss, verringert wird, hat aber auch den Nachteil, dass die Pflege und das Verständnis von Code möglicherweise erschwert werden. Einige Programmierer halten das Auslassen eines Standardkonstruktors für eine schlechte Praxis, andere dagegen nicht. Es gibt nichts, was einen einzelnen Programmierer daran hindert, sich an eine dieser Programmiermethoden zu halten, so dass das Einschließen eines standardmäßigen Nullkonstruktors in den Code weitgehend eine stilistische Entscheidung des Programmierers ist. Wenn der Konstruktor enthalten ist, schreiben die meisten Denkschulen vor, dass er wie jeder andere Konstruktor oder jede andere Methode kommentiert und dokumentiert werden sollte.
An jeden Standardkonstruktor können Zugriffsmodifikatoren angehängt werden, die den Konstruktor öffentlich, geschützt oder privat machen. Dies gibt dem Konstruktor spezifische Fähigkeiten basierend auf der Klasse, in der er spezifiziert ist. Mit einem öffentlichen Standardkonstruktor kann ein neues Objekt aus einer anderen Klasse erstellt werden, während ein geschützter Konstruktor nur aus seiner eigenen Klasse und allen Unterklassen aufgerufen werden kann. Geschützte Standardkonstruktoren werden häufig in einer Vererbungshierarchie angezeigt. Private Konstruktoren werden normalerweise nur in eigenständigen Klassen verwendet, in denen eine bestimmte Factory-Methode zum Aufrufen verfügbar ist, und nicht der Programmierer.