Konstruktor

Aus Wiki Herr Kimmig
Wechseln zu: Navigation, Suche


Ein Konstruktor ist eine spezielle Methode einer Klasse. Allgemein können Methoden jederzeit aufgerufen werden, ein Konstrukter demhingegen wird automatisch aufgerufen, sobald wir das Objekt anlegen. Das wird auch angedeutet mit den runden Methodenklammern beim Anlegen eines Objektes:

Meineklasse t = new Meineklasse();

Wird kein Konstruktor explizit programmiert, so wird von Java automatisch intern ein Standardkonstruktor angelegt.

Funktion

Da der Konstruktor automatisch beim Anlegen des Objektes aufgerufen wird, eignet dieser sich hervorragend für die Initialisierung eines Objektes, d.h. die Festlegung der Standardwerte.

Programmierung

Der Konstruktor kann wie eine normale Methode programmiert werden mit folgenden Ausnahmen:

  1. der Methodenname ist identisch mit dem Klassennamen
  2. der Konstruktor hat keinen Rückgabetyp, auch nicht void!
  3. der Konstruktor muss natürlich public sein

Beispiel ohne Parameter

Soll beim Anlegen eines Bankkontos automatisch ein Startguthaben auf das Konto gebucht werden, so kann dies mit dem Konstruktor erledigt werden:

public class Bankkonto {
    private double guthaben;

    public Bankkonto() {
        guthaben = 5; // Startwert festlegen
    }
}

Beim Anlegen eines Bankkontos mit Bankkonto k = new Bankkonto(); wird nun dieser Konstruktor aufgerufen und darin das Guthaben auf 5 (z.B. Euro) gesetzt.

mit Parametern

Zusätzlich kann es vorkommen, dass beim Anlegen eines Objektes direkt bestimmte Attribute festgelegt werden sollen. Bei einem Bankkonto könnte dies beispielsweise die Kontonummer sein.

Diese Kontonummer soll natürlich von allen Bankkonten unterschiedlich sein, deshalb können wir diese nicht fest in unserem Konstruktor einprogrammieren, wie wir das oben mit dem Startguthaben gemacht haben.

Vielmehr soll beim Anlegen eines Kontos die Kontonummer als Parameter mit angegeben werden. Deshalb muss zum einen der Konstruktor diese Parameter übernehmen (wie eine normale Methode), zum anderen muss beim Anlegen des Kontos den Wert für diesen Parameter (also die Kontonummer) mit angegeben werden.

Beispiel mit Parametern

public class Bankkonto {
    private double guthaben;
    private int kontonummer;

    public Bankkonto(int ktonr) {
        guthaben = 5; // Startguthaben festlegen
        kontonummer = ktonr; // Kontonummer speichern
    }
}

public class Test {
    public static void main(String[] args) {
        Bankkonto k = new Bankkonto( 12345 ); // Kontonummer als Parameter angegeben
    }
}

Hinweis: Zu beachten ist hierbei noch, dass im Konstruktor der Parametername ktonr nicht gleich sein darf wie der Attributname kontonummer. Mehr dazu im Kapitel Sichtbarkeit von Variablen.