OOP Programmierung
Konstruktoren
Diese Seite behandelt Konstruktoren, ihre Aufgaben und typische Einsatzszenarien in der objektorientierten Programmierung.
Konstruktor
Was macht ein Konstruktor?
Ein Konstruktor ist eine besondere Methode in einer Klasse. Er hat immer den gleichen Namen wie die Klasse und keinen Rückgabewert (auch void wird nicht angegeben).
Wenn du mit new
ein neues Objekt erstellst, wird automatisch der Konstruktor aufgerufen.
Aufgaben eines Konstruktors:
- Speicher reservieren
→ Der Konstruktor sorgt dafür, dass im Arbeitsspeicher (RAM) Platz für das neue Objekt geschaffen wird. - Variablen initialisieren (Instanzvariablen setzen)
→ Das heißt: Die Eigenschaften (Attribute) des Objekts bekommen Startwerte. - Eine Referenz zurückgeben
→ Du bekommst eine Speicheradresse (Referenz) zurück, mit der du später auf das Objekt zugreifen kannst.
Beispiel (in Java):
public class Hund {
String name;
// Konstruktor
public Hund(String n) {
name = n; // Initialisierung
}
}
Verwendung:
Hund meinHund = new Hund("Bello");
new Hund("Bello")
ruft den Konstruktor auf, reserviert Speicher, setzt name
auf „Bello“ und gibt eine Referenz zurück, die in meinHund
gespeichert wird.Konstruktor überladen (Overloading)
Ein Konstruktor kann überladen werden. Das bedeutet:
Du kannst mehrere Konstruktoren in einer Klasse schreiben, mit unterschiedlicher Parameterliste (Anzahl oder Typ der Übergabewerte).
So kannst du ein Objekt auf verschiedene Arten erstellen – je nachdem, wie viele Informationen du beim Erzeugen übergibst.
Warum ist das nützlich?
Du willst manchmal verschiedene Startwerte setzen, oder auch mal gar keine.
Mit dem überladenen Konstruktor kannst du das flexibel machen.
Beispiel (in Java):
public class Hund {
String name;
int alter;
// Konstruktor 1: ohne Parameter (Standardkonstruktor)
public Hund() {
name = "Unbekannt";
alter = 0;
}
// Konstruktor 2: mit einem Parameter
public Hund(String n) {
name = n;
alter = 0;
}
// Konstruktor 3: mit zwei Parametern
public Hund(String n, int a) {
name = n;
alter = a;
}
}
Verwendung:
Hund h1 = new Hund(); // ruft Konstruktor 1 auf
Hund h2 = new Hund("Bello"); // ruft Konstruktor 2 auf
Hund h3 = new Hund("Rex", 5); // ruft Konstruktor 3 auf
Wichtig:
- Der Name ist bei allen gleich (wie der Klassenname).
- Die Parameterliste muss sich unterscheiden (Anzahl oder Typ).
- Der Compiler entscheidet beim Aufruf automatisch, welcher Konstruktor passt (Methodenüberladung / Overloading).