Warum muss man immer mühsam Getter und Setter händisch anlegen?

Getter und Setter werden zur Datenkapselung und zur Definition einheitlicher Schnittstellen verwendet.

Bei der Datenkapselung wird ein direkter Zugriff auf die Daten einer Datenstruktur unterbunden. Dadurch können Fehler beim Datenzugriff vermieden werden. Ein Beispiel dazu findest du im Artikel “Was versteht man unter Datenkapselung?” in unserer FAQ.

Weiters werden Getter und Setter verwendet, um für verschiedene Implementierungen ein gemeinsames Interface anbieten zu können.

interface Tier {
    String getName();
}

class Huhn implements Tier {
    public String getName() {
        return "Huhn";
    }
}

class Katze implements Tier {
    private String name;

    public String getName() {
        return name;
    }
}

Beim Schreiben der Getter und Setter muss man sich überlegen, welche Zugriffsmethoden eine Klasse benötigt. Oft sieht man, dass unreflektiert Getter und Setter für alle Instanzvariablen einer Klasse angelegt werden. Eine solche Vorgehensweise ist selten sinnvoll.

Viele Entwicklungsumgebungen (IDEs) können Getter und Setter automatisch generieren. Will man also Getter und Setter nicht händisch einfügen, kann man auf die Möglichkeit zur automatischen Generierung von Gettern und Settern zurückgreifen.