Konstruktor

Konstruktor

Als Konstruktoren und Destruktoren werden in der Programmierung spezielle Prozeduren bezeichnet, die beim Erzeugen und Zerstören von Objekten oder Variablen aufgerufen werden. Konstruktoren bringen die Objekte in einen definierten Anfangszustand.

Der Konstruktor (im Englischen auch mit ctor abgekürzt) wird bei der Erzeugung der Variablen aufgerufen. Das Versetzen in den Anfangszustand wird auch als Initialisierung bezeichnet. Dabei besteht in der Regel die Möglichkeit, unterschiedliche Initialisierungsvarianten mittels der Aufrufparameter des Konstruktors auszuwählen. Im Konstruktor können auch Vorbedingungen (siehe Design by Contract) geprüft werden, um sicherzustellen, dass bei der Erstellung die so genannte Invariante erfüllt wird.

Der Destruktor (im Englischen auch mit dtor abgekürzt) wird dagegen bei der Zerstörung der Variablen aufgerufen, und erledigt ggf. Aufräumarbeiten.

Durch Konstruktoren und Destruktoren bleibt der Anschein der Atomarität der Erstellung bzw. des Abbaus gewahrt, während am Punkt der Deklaration die Möglichkeit gegeben wird, die Regeln zur Erstellung und Auflösung von Variablen des betreffenden Typs auszuformulieren.

Typische Anwendungsfälle für Konstruktoren und Destruktoren sind die Belegung und Wiederfreigabe von Systemressourcen, so etwa Netzwerkverbindungen. In manchen Programmiersprachen können Konstruktoren und Destruktoren auch dazu verwendet werden, um für die Variable erforderlichen Speicherplatz anzufordern (im Konstruktor) oder wieder freizugeben (im Destruktor).

Konstruktoren und Destruktoren finden auch bei der objektorientierten Programmierung häufige Anwendung.

Programmiersprachen wie C++ garantieren die Ausführung von Destruktoren, wann immer der Gültigkeitsbereich der Variablen verlassen wird (siehe RAII). Deshalb werden mitunter Konstruktoren und Destruktoren eingesetzt, deren einziger Zweck die Sicherstellung korrekter Ressourcenbilanz im gegebenen Kontext ist, in C++ beispielsweise bei der Template-Klasse auto_ptr.

Programmiersprachen wie Java oder Python und die Entwicklungsplattform .NET verwenden das zu Destruktoren alternative Konzept der Finalisierung, bei der Aufräumarbeiten nicht zum frühest möglichen Zeitpunkt, sondern erst mit dem nächsten Lauf der automatischen Speicherbereinigung (engl. garbage collection) durchgeführt wird. Die Prozedur, die dies erledigt, nennt sich Finalisierungsroutine oder Finalisierer. Finalisierer haben im Vergleich mit Destruktoren einige Einschränkungen. So dürfen z. B. Finalisierer im Allgemeinen nicht auf andere Objekte verweisen, da es sein kann, dass diese bereits abgebaut wurden.

Konstruktortypen

Standardkonstruktor (englisch default constructor oder nullary constructor): leere Parameterliste.

Object()

Kopierkonstruktor (englisch copy constructor): nimmt einen eigenen Objekttyp als Parameter entgegen und erstellt eine Kopie daraus (vergleiche: flache Kopie vs. tiefe Kopie)

Object( Object object )

forwarding constructor oder (als Konstrukt) constructor forwarding: gibt die Parameter an einen anderen Konstruktor weiter und verwendet optional Standardwerte für die fehlenden Parameter. Dies ist insbesondere für Programmiersprachen relevant, die keine Standardwerte unterstützen (z. B. Java, C#). Dieses Konstrukt ist zu unterscheiden von einer Initialisierungsliste, in der wirklich Werte gesetzt werden, während der forwarding constructor nur Werte weitergibt.

Object( int value1 ) : this( value, 0 )

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • konstruktor — {{/stl 13}}{{stl 8}}rz. mos I, Mc. konstruktororze; lm M. konstruktororzy {{/stl 8}}{{stl 7}} ten, kto opracowuje konstrukcję różnych urządzeń : {{/stl 7}}{{stl 10}}Konstruktor maszyn, przyrządów, mostów, statków. <śrdwłac.> {{/stl 10}} …   Langenscheidt Polski wyjaśnień

  • kònstruktor — m onaj koji se bavi konstruiranjem strojeva, mehanizama, građevinskih objekata (mostova) i/ili njihovih pojedinih dijelova; graditelj …   Veliki rječnik hrvatskoga jezika

  • konstruktor — kònstruktor m DEFINICIJA tehn. onaj koji se bavi konstruiranjem strojeva, mehanizama, građevinskih objekata (mostova) i/ili njihovih pojedinih dijelova; graditelj ETIMOLOGIJA vidi konstruirati …   Hrvatski jezični portal

  • konstrúktor — ja m (ú) 1. kdor uresničuje svoje (izvirne) zamisli, zlasti na področju tehnike: konstruktor kmetijskih strojev / inženir konstruktor 2. redko sestavljavec, oblikovalec: konstruktor kolesa; pren., ekspr. je domiseln konstruktor novel …   Slovar slovenskega knjižnega jezika

  • konstruktor — m IV, DB. a, Ms. konstruktororze; lm M. konstruktororzy, DB. ów «specjalista opracowujący jakąś konstrukcję» Konstruktor samolotów, okrętów. Konstruktor budynku, urządzeń technicznych, mostów. ‹śrdwłc.› …   Słownik języka polskiego

  • Konstruktör — Konstrukteur (franz.: Erbauer, Erfinder, Gestalter; weitere weniger gebräuchliche Schreibweise: Konstruktör) ist eine in Deutschland nicht geschützte Berufsbezeichnung. Als Konstrukteur wird ein Ingenieur oder ein anderer Techniker bezeichnet,… …   Deutsch Wikipedia

  • konstruktor — <lat. constructiodan> 1. Konstruksiya düzəldən mütəxəssis. Təyyarə konstruktoru. Baş konstruktor. 2. Uşaqların quraşdırıb müxtəlif şeylər düzəltməsi üçün içində müxtəlif hissələr, detallar olan qutu …   Azərbaycan dilinin izahlı lüğəti

  • konstruktør — kon|struk|tør sb., en, er, erne (bygningskonstruktør; person der konstruerer noget) …   Dansk ordbog

  • konstruktör — s ( en, er) …   Clue 9 Svensk Ordbok

  • Copy-Konstruktor — Ein Kopierkonstruktor (auch Copy Konstruktor) ist in der Informatik ein spezieller Konstruktor, der eine Referenz auf ein Objekt desselben Typs als Parameter entgegennimmt und die Aufgabe hat, eine Kopie des Objektes zu erstellen.… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”