Konstruktoren und Standardkonstruktoren in Java

Was ist ein Konstruktor?

Ein Konstruktor ist eine spezielle Methode in Java, die verwendet wird, um ein neues Objekt einer Klasse zu initialisieren, sprich die Attribute mit sinnvollen Werten belegen. Ein Konstruktor wird aufgerufen, wenn ein neues Objekt mit dem Schlüsselwort new erstellt wird.

Eigenschaften eines Konstruktors

Standardkonstruktor

Der Standardkonstruktor hat keine Übergabe-Parameter und erstellt das Objekt und vergibt für alle Attribute Standardwerte. Programmiert man keinen Konstruktor in einer Klasse, wird automatisch ein Standardkonstruktor von Java erstellt, der z.B. alle ganzzahligen Attribute auf 0 setzt.

Beispiel für eine Klasse mit einem Standardkonstruktor:


public class AUTO {
    // Attribute
    private String farbe;
    private int anzahlRaeder;

    // Standard-Konstruktor
    public AUTO() {
        this.farbe = "silber";
        this.anzahlRaeder = 4;
    }
}

Beispiel: Konstruktor in einer Klasse

Hier ist eine Klasse mit einem Konstruktor mit Übergabe-Parameter:


public class Auto {
    private String farbe;
    private int anzahlRaeder;

    // Spezieller Konstruktor (mit Übergabe-Parametern)
    public Auto(String farbe, int anzahlRaeder) {
        this.farbe = farbe;
        this.anzahlRaeder = anzahlRaeder;
    }
}

Mit diesem Konstruktor können nun neue Autos erzeugt werden durch, z.B. durch den Aufruf von new AUTO("blau",4) oder new AUTO("gelb",3). Dabei wird der Wert des Übergabe-Parameter farbe auf "blau" (oder "gelb") gesetzt. Dadruch wird die Zeile this.farbe = farbe; beim Aufruf des Konstruktors ersetzt durch this.farbe = "blau";. Da man mit this. auf Attribute zugreifen kann, wird somit der Wert des Attributs farbe auf "blau" gesetzt.

Konstruktor und Standardkonstruktor kombiniert

Du kannst sowohl einen eigenen Konstruktor als auch einen expliziten Standardkonstruktor in einer Klasse definieren:


public class AUTO {
    // Attribute
    private String farbe;
    private int anzahlRaeder;

    // Konstruktoren 
	public AUTO() {
        this.farbe = "silber";
        this.anzahlRaeder = 4;
    }
	
    public AUTO(String farbe, int anzahlRaeder) {
        this.farbe = farbe;
        this.anzahlRaeder = anzahlRaeder;
    }
}

Verwendung der Konstruktoren

Beispiel für die Erstellung von Objekten mit verschiedenen Konstruktoren:


    // Ein neues Objekt der Klasse AUTO erstellen
    AUTO meinAuto = new AUTO("Rot", 6);
    // Methode aufrufen
    meinAuto.starten();
    
    // ein silbernes Auto mit vier Rädern erstellen
    AUTO meinZweitAuto = new AUTO();

Was passiert im Beispiel?

  1. Ein AUTO-Objekt namens meinAuto wird erstellt, wobei die Farbe "Rot" und die Anzahl der Räder 4 sind.
  2. Die Methode starten() wird aufgerufen und gibt als Antwort "brumm brumm" zurück.
  3. Ein weiteres AUTO-Objekt namens meinZweitAuto wird erstellt, wobei die Farbe "Silber" und die Anzahl der Räder 4 sind.

Zusammenfassung: Ein Konstruktor...

  • ist eine Methode
  • wird automatisch aufgerufen, wenn ein neues Objekt erzeugt wird
  • initialisert alle Attribute (sprich belegt sie mit sinnvollen Werten)
  • hat den gleichen Namen wie die Klasse und keinen Rückgabetyp