Razloženi metri in seterji v Javi

Pridobivalci in nastavitelji se uporabljajo za zaščito vaših podatkov, zlasti pri ustvarjanju razredov.

Za vsako spremenljivko primerka metoda getter vrne svojo vrednost, medtem ko metoda setter nastavi ali posodobi svojo vrednost. Glede na to so geterji in postavljavci znani tudi kot accessors oziroma mutatorji .

Po dogovoru se getterji začnejo z besedo "get", setterji pa z besedo "set", ki jim sledi ime spremenljivke. V obeh primerih je prva črka imena spremenljivke napisana z veliko začetnico:

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

Metoda getter vrne vrednost atributa. Metoda nastavitelja vzame parameter in ga dodeli atributu.

Ko sta geter in setter definirana, ga uporabimo v glavnem:

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

Pridobivalci in nastavitelji omogočajo nadzor nad vrednostmi. Dano vrednost lahko preverite v nastavitelju, preden jo dejansko nastavite.

Zakaj uporabljati getterje in setterje?

Pridobivalci in nastavitelji vam omogočajo nadzor nad dostopom in posodobitvijo pomembnih spremenljivk v vaši kodi. Na primer, upoštevajte to nastavitveno metodo:

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

Z uporabo setNumbermetode ste lahko prepričani, da je vrednost numbervedno med 1 in 10. To je veliko boljše kot posodabljanje numberspremenljivke neposredno:

obj.number = 13;

Če posodobite numberneposredno, boste morda povzročili neželene stranske učinke nekje drugje v kodi. Tu nastavitev numberna 13 krši omejitev 1 do 10, ki jo želimo vzpostaviti.

Izdelava numberzasebne spremenljivke in uporaba setNumbermetode bi to preprečila.

Po drugi strani pa je edini način za odčitavanje vrednosti numberz uporabo getter metode:

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