Konstruktoren

Konstruktoren in Java

 
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:
  • Sie tragen immer den Namen der Klasse
  • Sie besitzen keine Modifizierer (static, final...)
  • Sie können überladen werden (mehrere Konstruktoren)
  • Sie besitzen keinen Rückgabewert
  • Rufen sie ihrerseits keinen anderen Konstruktor auf, werden sie vom Compiler um den Aufruf des Konstruktors der Basisklasse super() erweitert

 

Quelle: http://www.javabeginners.de/Grundlagen/Konstruktor.php