Konstruktoren

Konstruktoren sind spezielle methodenähnliche Klassenstrukturen, die den Namen ihrer Klasse tragen und beim Erzeugen von Objekten der Klasse über das Schlüsselwort new aufgerufen werden.

Eine Klasse kann keinen, einen oder mehrere unterschiedliche Konstruktoren besitzen. Sie dienen dazu, ein neu gebildetes Objekt einer Klasse in einen definierten Anfangszustand zu versetzen. Welcher dies ist hängt davon ab, welcher Konstruktor bei der Objektbildung aufgerufen wird. Wird lediglich ein leerer (Standard-) Konstruktor ohne Parameterübergabe benötigt, so muss dieser nicht ausdrücklich angegeben werden. Er wird bei Fehlen vom Compiler automatisch erzeugt. Allerdings ist dies nur der Fall, solange kein weiterer Konstruktor deklariert wurde. Werden neben weiteren Konstruktoren auch ein leerer Konstruktor benötigt, so muss dieser explizit angegeben werden.

public class KonstruktorClass {
    
    private int x;

    // Standardkonstruktor muss nicht angegeben werden
    public KonstruktorClass() {
        
    }
    
    // zweiter Konstruktor
    public KonstruktorClass(int i){
        this.x=i;
    }

}

Das Beispiel zeigt eine Klasse mit zwei Konstruktoren. Der erste ist ein Standardkonstruktor, der zweite dient zur Instanzierung einer int Instanzvariablen. Beim Aufruf dieses Konstruktors wird somit ein int-Attribut bereits beim Erzeugen einer Instanz initialisiert. Soll also ein Objekt der Klasse KonstruktorClass erzeugt werden, kann dies ohne oder mit Angabe eines Anfangswertes für die Instanzvariable x geschehen:

KonstruktorClass konst = new KonstruktorClass();

oder:

KonstruktorClass konst = new KonstruktorClass(2);

Konstruktoren müssen einigen Regeln folgen: