Konstruktoren in Java
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.
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:
oder:
- 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