Paaiškinti „Java“ programuotojai ir atsiskaitytojai

Getters ir seters naudojami jūsų duomenims apsaugoti, ypač kuriant klases.

Kiekvieno egzemplioriaus kintamojo metodas getter grąžina jo vertę, o seterio metodas nustato arba atnaujina jo vertę. Atsižvelgiant į tai, getters ir setters taip pat žinomi kaip atitinkamai aksesuarai ir mutatoriai .

Pagal susitarimą getters prasideda žodžiu „get“, o seteriai - su „set“, po kurio seka kintamasis vardas. Abiem atvejais pirmoji kintamojo vardo raidė rašoma didžiosiomis raidėmis:

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

Metodas „getter“ grąžina atributo vertę. Setter metodas paima parametrą ir priskiria jį atributui.

Nustačius „getter“ ir „setter“, mes juos dažniausiai naudojame:

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

Getters ir seters leidžia kontroliuoti vertes. Prieš nustatydami vertę, galite patvirtinti nurodytą vertę seteryje.

Kodėl verta naudoti getters ir setters?

Getters ir seters leidžia jums kontroliuoti, kaip prieinami svarbūs kintamieji ir atnaujinami jūsų kode. Pvz., Apsvarstykite šį seterio metodą:

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

Naudodami setNumbermetodą galite būti tikri, kad reikšmė numbervisada yra nuo 1 iki 10. Tai daug geriau nei numbertiesiogiai atnaujinti kintamąjį:

obj.number = 13;

Jei atnaujinsite numbertiesiogiai, gali kilti nenumatytų šalutinių reiškinių kur nors kitur jūsų kode. Čia nustatymas numberį 13 pažeidžia norimą nustatyti apribojimą nuo 1 iki 10.

Padarant numberprivatų kintamąjį ir naudojant setNumbermetodą, to išvengti.

Kita vertus, vienintelis būdas nuskaityti reikšmę numberyra naudojant „getter“ metodą:

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