WikiDer > Konstruktor

Constructor
Der Begriff Konstruktor kann sich auch auf die Namen beziehen, die die Daten in a . umschließen algebraischer Datentyp.

Im objektorientiertenProgrammiersprachen ist ein Konstrukteur eine bestimmte Art Methode von a Klasse die ausgeführt wird, wenn a Objekt der Klasse entsteht.

Ein Konstruktor ähnelt einer Methode, gibt aber keinen Wert zurück und kann es nicht vererbt einbiegen in. Das Umfang eines Konstruktors kann auch unterschiedlich sein: in bestimmten Sprachen, wie zum Beispiel Java, der Konstruktor selbst kann nicht aufgerufen werden. Konstruktoren haben oft denselben Namen wie die Klasse, zu der sie gehören. Der Zweck eines Konstruktors ist die Initialisierung der Felder einer Klasse und das Erfassen von a Invariante für die Klasse (wenn möglich, sonst schlägt die Objekterstellung fehl). Ein korrekter Konstruktor gibt ein Objekt in einem 'gültigen' Zustand zurück.

In den meisten Programmiersprachen, Überlastung des Konstruktors möglich: Eine Klasse kann mehrere Konstruktoren mit gleichem Namen, aber unterschiedlichen haben Parameter.

Das Gegenstück des Konstruktors ist der Zerstörer die ausgeführt wird, wenn das Objekt zerstört wird.

Konstruktor kopieren

Ein Kopierkonstruktor ist ein Konstruktor, mit dem eine Kopie eines vorhandenen Objekts erstellt werden kann. Dieser Konstruktor nimmt dieses Objekt als Argument und der Konstruktor übernimmt die Werte der Felder dieses Objekts.

Ein Beispiel für einen Kopierkonstruktor:

ÖffentlichkeitKlasseVektor{ÖffentlichkeitintX;Öffentlichkeitintja;Öffentlichkeitintz;// Konstruktor kopierenÖffentlichkeitVektor(VektorVektor){diese.X=Vektor.X;diese.ja=Vektor.ja;diese.z=Vektor.z;}}

Dieser Konstruktor kann wie folgt verwendet werden:

Vektorp=NeuVektor()p.X=1;p.ja=1;p.z=1;Vektorq=NeuVektor(p)q.X=2;

Nach Ausführung der ersten vier Zeilen enthält der Vektor p den Wert 1 für jedes der Felder x, y und z. Mit dem Kopierkonstruktor wird ein Vektor q erstellt, der zunächst die Werte des Vektors p hat: 1 für x , y und z. Danach wird der Wert von x 2. Danach hat q die Werte x = 2, y = 1, z = 1 und p hat die Werte x = 1, y = 1, z = 1 Die Felder des Vektors p werden also nicht verändert, da q, die Kopie von p, verändert wird.

Beispiel

Java

Einige der Unterschiede in Java zwischen Konstruktoren und Methoden sind:

  • Konstrukteure liefern keinen Wert
  • Konstruktoren können nicht direkt aufgerufen werden (mit Neu ein Konstruktor wird ausgeführt)
  • Konstruktoren können nicht synchronisiert, final, abstrakt oder statisch sein
  • Konstrukte werden immer von denselben ausgeführt performed Faden
ÖffentlichkeitKlasseBeispiel{// Deklaration eines FeldesPrivatgeländeintTermine;// Definition eines KonstruktorsÖffentlichkeitBeispiel(){diese(1);}// Konstruktor überladenÖffentlichkeitBeispiel(intEingang){Termine=Eingang;}}
// Instanziierung eines Objekts der obigen KlasseBeispiele=NeuBeispiel(42);