Обяснени гетери и сетери в Java

Getters и setter се използват за защита на вашите данни, особено при създаване на класове.

За всяка променлива на екземпляр методът getter връща стойността си, докато методът setter задава или актуализира стойността си. Като се има предвид това, гетерите и сетерите са известни също като аксесоари и мутатори , съответно.

По споразумение гетерите започват с думата "get", а сетерите с думата "set", последвано от име на променлива. И в двата случая първата буква от името на променливата е главна:

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

Методът getter връща стойността на атрибута. Методът за задаване взема параметър и го присвоява на атрибута.

След като сте определили getter и setter, ние ги използваме в нашата основна:

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

Гетери и сетери позволяват контрол над стойностите. Можете да проверите дадената стойност в настройващото устройство, преди действително да зададете стойността.

Защо да използваме гетери и сетери?

Getters и setter ви позволяват да контролирате колко важни променливи са достъпни и актуализирани във вашия код. Например, помислете за този метод на задаване:

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

Използвайки setNumberметода, можете да сте сигурни, че стойността на numberвинаги е между 1 и 10. Това е много по-добре от актуализирането на numberпроменливата директно:

obj.number = 13;

Ако актуализирате numberдиректно, възможно е да предизвикате нежелани странични ефекти някъде другаде във вашия код. Тук настройката numberна 13 нарушава ограничението от 1 до 10, което искаме да установим.

Създаването numberна частна променлива и използването на setNumberметода би предотвратило това.

От друга страна, единственият начин да се прочете стойността на numberе чрез използване на метод за получаване:

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