💡 1. Instanziierung & Konstruktor-Verkettung
Klassen sind Baupläne für Objekte im Heap. Konstruktoren initialisieren neue Instanzen:
public class BankKonto {
private String kontonummer;
private double saldo;
// Hauptkonstruktor:
public BankKonto(String kontonummer, double initialSaldo) {
this.kontonummer = kontonummer;
this.saldo = initialSaldo;
}
// Überladener Konstruktor mit Default-Saldo via this(...):
public BankKonto(String kontonummer) {
this(kontonummer, 0.0);
}
public void einzahlen(double betrag) {
if (betrag <= 0) throw new IllegalArgumentException("Betrag muss > 0 sein");
this.saldo += betrag;
}
}
Die Klasse ist der Architektenplan auf Papier. Das Objekt ist das tatsächlich gebaute Haus aus Ziegeln im Speicher. Mit `new` wird der Bautrupp losgeschickt!
⚡ 2. Quick-Cheat-Sheet
| Konstrukt | Bedeutung | Regel |
|---|---|---|
this | Referenz auf das aktuelle Objekt | Dient zur Unterscheidung von Feld und Parameter |
this(...) | Konstruktor-Weiterleitung | Muss zwingend in der ERSTEN Zeile stehen |
| Default-Konstruktor | Automatisch generiert | Entfällt sobald eigener Konstruktor existiert |
new | Speicherallokation | Erzeugt Objekt auf dem Heap |
⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)
Sobald ein Konstruktor mit Parametern geschrieben wird, entfällt new Auto() ohne Parameter. Man muss ihn bei Bedarf explizit hinschreiben.
Schreibt man name = name; statt this.name = name;, weist der Parameter sich selbst zu und das Instanzfeld bleibt uninitialisiert!
🧠 4. Diagnostischer Selbst-Check
Überprüfe dein Verständnis von Sprach-Features, Speicherverwaltung und Enterprise-Architektur, bevor du den Code in der Web-IDE schreibst.