Konstruktor

**This is an old revision of the document!**

Konstruktor

Ein Konstruktor wird benötigt, um einem Objekt einer Klasse unmittelbar bei seiner Erzeugung initiale Werte zuzuweisen. Diese Werte müssen bei der Erzeugung des Objekts natürlich irgendwie mitgegeben werden.

Schau dir folgendes Beispiel an.

Ab Zeile 5 wird in der Klasse Student der Konstruktor implementiert. Die Syntax ist die folgende: Der Klassen-Name (im Beispiel Student) wird nochmals aufgerufen. Ohne Schlüsselwörter. Einfach nur der Klassen-Name. Diesem Aufruf werden Argumente übergeben. Mit diesen Argument werden in den Zeilen 6 und 7 jeweils Klassen-Atrribute initialisiert. Entsprechend müssen natürlich auch die Datentypen bei der Übergabe an den Konstruktor mit den Datentypen der Attribute übereinstimmen. Klar.

In der Main wird nun in Zeile 5 ein Objekt der Klasse Student erzeugt. Diesmal werden aber beim Aufruf gleich die Initialwert mit übergeben. Ein späteres Setzen dieser Werte ist nicht notwendig.

 class Student { private final String name; private int age;
 
Student(String name, int age){ this.name = name; this.age = age; } public void display() { System.out.println("name: "+this.name); System.out.println("age: "+this.age); } } 

 public class Main{ public static void main(String args[]) {
 
 
    Student obj1 = new Student("Maria", 32);
 
    obj1.display(); 
 
} } 

Konstruktor oder setter-Methode

Natürlich fragst du dich jetzt, ob wir nicht im Abschnitt über getter- und setter-Methoden gelernt haben, dass wir private-Attribute von außen abkapseln. Wie passt das jetzt mit dem Konstruktor zusammen, der ja doch wieder die Attribute einfach setzt?

Zunächst wird der Code im Zweifel nicht so einfach wie im Beispiel sein. Checks können natürlich auch den Konstruktor mit eingebaut werden.