A getterek és a beállítók az adatok védelmére szolgálnak, különösen osztályok létrehozásakor.
Minden példányváltozó esetén a getter metódus visszaadja az értékét, míg a setter metódus beállítja vagy frissíti az értékét. Tekintettel erre, get és set metódusok is nevezik accessors és mutators , ill.
Megállapodás szerint a getterek a "get" szóval, a setters a "set" szóval kezdődnek, amelyet egy változó neve követ. Mindkét esetben a változó nevének első betűje nagybetűs:
public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }
A getter metódus visszaadja az attribútum értékét. A szetter módszer vesz egy paramétert és hozzárendeli az attribútumhoz.
Miután meghatároztuk a jelzőt és a beállítót, a fő részünkön használjuk:
public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"
A getterek és a beállítók lehetővé teszik az értékek ellenőrzését. Ellenőrizheti az adott értéket a szetterben, mielőtt ténylegesen beállítja az értéket.
Miért érdemes használni a mérőeszközöket?
A getterek és beállítók segítségével szabályozhatja, hogy a fontos változók miként érhetők el és frissüljenek a kódban. Fontolja meg például ezt a szetter módszert:
public void setNumber(int number) { if (number 10) { throw new IllegalArgumentException(); } this.number = num; }
A setNumber
módszer használatával biztos lehet benne, hogy a értéke number
mindig 1 és 10 között van. Ez sokkal jobb, mint a number
változó közvetlen frissítése :
obj.number = 13;
Ha number
közvetlenül frissít , akkor előfordulhat, hogy nem kívánt mellékhatásokat okoz máshol a kódban. Itt number
a 13-ra állítás megsérti az 1-10 korlátozást, amelyet meg akarunk teremteni.
number
Privát változó készítése és a setNumber
módszer használata megakadályozná ezt.
Másrészt az értékének egyetlen módja number
a getter módszer használata:
public int getNumber() { return this.number; }