Wozu getter und setter?

4 Antworten

Stell dir vor du hast eine Klasse mit der öffentlichen integer Membervariable Alter. So wäre ihr von außen jeder, auch sinnlose, Wert zuweisbar. 

Stattdessen sollte die Alter Variable private sein und so von außen nicht zugreifbar. Zusätzlich macht man einen public/protected Setter für die Variable und wenn ein negativer Wert zugewiesen wird kann man eine Exception werfen.

Wenn du zum Beispiel von mehreren Threads auf eine Variable zugreifst und diese nicht mit dem Schlüsselwort volatile gekennzeichnet ist, kann es zu seltsamen Ergebnissen kommen.

Außerdem erhöht man so natürlich die Kapselung und es ist besserer Stil.

Damit andere classes abfragen können was, und auch die variablen setten können

In jedem Programm braucht man Variablen, die früher oder später mit „Leben“, d.h. sinnvollen Werten gefüllt werden. Es gibt dafür Strings, Ints und Floats.

Getter erfragen den Wert einer Variablen und Setter ändern bzw. setzen ihn.

Java ist eine sogenannte objekt-orientierte Programmiersprache (OOP). Einige bekannte Vorgänger-Sprachen sind Assembler, C und Basic. Diese Sprachen sind sogenannte imperative Programmiersprachen.

Zwar wurde das Konzept der Getter und Setter erst bei den OOPn bewusst gemacht, aber auch in anderen Programmiersprachen muß man ja irgendwie erfragen, welchen Wert eine Variable hat, bzw. diesen ändern können. Nur hat man dort nicht von Gettern und Settern gesprochen …

In OOPn heißen die Variablen nun Property und die Funktionen werden als Methoden bezeichnet. Aber auch dies ist alter Wein in neuen Schläuchen …

Ein Telefon bleibt ein Telefon, auch wenn wir dazu inzwischen Handys oder iPhones bzw. Smartphones nutzen. Manchmal muß man eben auch „Vokabeln“ lernen …