Getters and Setters in Java Explained

Getre a setre sa používajú na ochranu vašich údajov, najmä pri vytváraní tried.

Pre každú premennú inštancie vráti metóda getter jej hodnotu, zatiaľ čo metóda setter nastaví alebo aktualizuje jej hodnotu. Vzhľadom na to sú getre a setre tiež známe ako accessors a mutators .

Podľa konvencie začínajú getteri slovom „get“ a setteri slovom „set“, za ktorými nasleduje názov premennej. V obidvoch prípadoch je prvé písmeno názvu premennej veľké:

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

Metóda getter vráti hodnotu atribútu. Metóda settera vezme parameter a priradí ho k atribútu.

Po definovaní getra a setra ho používame v našom hlavnom:

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

Getre a setre umožňujú kontrolu nad hodnotami. Pred skutočným nastavením hodnoty môžete v nastavovači overiť danú hodnotu.

Prečo používať getry a setre?

Získávače a nastavovatelia vám umožňujú ovládať, ako sa v kóde pristupuje k dôležitým premenným a ako sa aktualizujú. Zvážte napríklad tento spôsob nastavenia:

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

Použitím tejto setNumbermetódy si môžete byť istí, že hodnota parametra numberje vždy medzi 1 a 10. Je to oveľa lepšie ako numberpriamo aktualizovať premennú:

obj.number = 13;

Ak aktualizujete numberpriamo, je možné, že spôsobíte neúmyselné vedľajšie účinky niekde inde v kóde. Tu nastavenie numberna 13 porušuje obmedzenie 1 až 10, ktoré chceme vytvoriť.

Vytvorenie numbersúkromnej premennej a použitie setNumbermetódy by tomu zabránilo.

Na druhú stranu, jediný spôsob, ako prečítať hodnotu, numberje pomocou metódy getra:

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