Java – Getter, Setter und Konstruktoren – 2026-02-02 (ASS)¶
Getters und Setters in Java¶
Zweck von Gettern und Settern¶
- Kontrollierter Zugriff auf Klassenattribute (Felder)
- Umsetzung des Prinzips der Kapselung (Encapsulation)
- Schutz interner Daten vor direktem Zugriff von außen
- Moeglichkeit zur Validierung von Eingaben
- Bessere Wartbarkeit und Erweiterbarkeit des Codes
Getter¶
- Dienen zum Auslesen privater Attribute
- Haben in der Regel keinen Seiteneffekt
- Rueckgabetyp entspricht dem Datentyp des Attributs
- Namenskonvention:
getAttributName()
Beispiel:
public class Person {
private String name;
public String getName() {
return name;
}
}
Setter¶
- Dienen zum Setzen oder Aendern privater Attribute
- Rueckgabetyp ist immer
void - Koennen Pruefungen oder Zusatzlogik enthalten
- Namenskonvention:
setAttributName(...)
Beispiel mit Validierung:
public class Person {
private int alter;
public void setAlter(int alter) {
if (alter >= 0) {
this.alter = alter;
}
}
}
Wichtige Hinweise¶
- Nicht jedes Attribut benoetigt zwingend einen Setter
- Lesender Zugriff kann erlaubt sein, schreibender bewusst verboten
- Getter und Setter sind kein Selbstzweck, sondern ein Kontrollmechanismus
- Konstante oder unveraenderliche Werte (z. B. ID) erhalten oft keinen Setter
Konstruktoren in Java¶
Zweck von Konstruktoren¶
- Werden beim Erzeugen eines Objekts automatisch aufgerufen
- Dienen der Initialisierung von Objektattributen
- Stellen sicher, dass ein Objekt in einem gueltigen Startzustand ist
Merkmale eines Konstruktors¶
- Name identisch mit dem Klassennamen
- Kein Rueckgabewert (auch nicht
void) - Kann Parameter haben, muss aber nicht
- Kann ueberladen werden (mehrere Varianten)
- In der Regel
public, damit Objekte von außen erzeugt werden koennen
Default-Konstruktor¶
- Keine Parameter
- Wird nur automatisch erzeugt, wenn kein anderer Konstruktor definiert ist
- Erlaubt leere Objekte
Beispiel:
public class Person {
public Person() {
// leerer Konstruktor
}
}
Parametrisierter Konstruktor¶
- Setzt Attribute direkt beim Erzeugen
- Verhindert unvollstaendige oder inkonsistente Objekte
- Verwendung von
this.attributzur Unterscheidung
Beispiel:
public class Person {
private String name;
private int alter;
public Person(String name, int alter) {
this.name = name;
this.alter = alter;
}
}
Typischer Praxisansatz¶
- Attribute als
private - Initialisierung ueber Konstruktor
- Zugriff ueber Getter
- Setter nur, wenn Aenderbarkeit gewollt ist
- Immutable-Ansatz bei sensiblen Daten (kein Setter)