Getter und Setter in Java erklärt

Getter und Setter werden zum Schutz Ihrer Daten verwendet, insbesondere beim Erstellen von Klassen.

Für jede Instanzvariable gibt eine Getter-Methode ihren Wert zurück, während eine Setter-Methode ihren Wert festlegt oder aktualisiert. Vor diesem Hintergrund werden Getter und Setter auch als Accessoren bzw. Mutatoren bezeichnet.

Konventionell beginnen Getter mit dem Wort "get" und Setter mit dem Wort "set", gefolgt von einem Variablennamen. In beiden Fällen wird der erste Buchstabe des Variablennamens großgeschrieben:

public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }

Die Getter-Methode gibt den Wert des Attributs zurück. Die Setter-Methode nimmt einen Parameter und weist ihn dem Attribut zu.

Sobald der Getter und der Setter definiert wurden, verwenden wir ihn in unserem Haupt:

public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"

Getter und Setter ermöglichen die Kontrolle über die Werte. Sie können den angegebenen Wert im Setter überprüfen, bevor Sie den Wert tatsächlich einstellen.

Warum Getter und Setter verwenden?

Mit Gettern und Setzern können Sie steuern, wie auf wichtige Variablen in Ihrem Code zugegriffen und diese aktualisiert werden. Betrachten Sie zum Beispiel diese Setter-Methode:

public void setNumber(int number) { if (number  10) { throw new IllegalArgumentException(); } this.number = num; }

Mit der setNumberMethode können Sie sicher sein, dass der Wert von numberimmer zwischen 1 und 10 liegt. Dies ist viel besser, als die numberVariable direkt zu aktualisieren :

obj.number = 13;

Wenn Sie numberdirekt aktualisieren , können an einer anderen Stelle in Ihrem Code unbeabsichtigte Nebenwirkungen auftreten. Hier numberverstößt die Einstellung auf 13 gegen die Einschränkung von 1 bis 10, die wir festlegen möchten.

Das Erstellen numbereiner privaten Variablen und die Verwendung der setNumberMethode würden dies verhindern.

Auf der anderen Seite können Sie den Wert von numbernur mithilfe einer Getter-Methode lesen :

public int getNumber() { return this.number; }