Getters og Setters i Java forklart

Getters og setters brukes til å beskytte dataene dine, spesielt når du lager klasser.

For hver forekomstvariabel returnerer en gettermetode verdien mens en settermetode angir eller oppdaterer verdien. Gitt dette er getters og settere også kjent som henholdsvis accessors og mutators .

Etter konvensjon begynner getters med ordet "get" og settere med ordet "set", etterfulgt av et variabelnavn. I begge tilfeller er den første bokstaven i variabelens navn med store bokstaver:

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

Getter-metoden returnerer verdien av attributtet. Settermetoden tar en parameter og tilordner den til attributtet.

Når getter og setter er definert, bruker vi det i hovedsak:

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

Getter og setter tillater kontroll over verdiene. Du kan validere den gitte verdien i setteren før du faktisk setter verdien.

Hvorfor bruke getters og setters?

Getters og setters lar deg kontrollere hvor viktige variabler er tilgjengelige og oppdateres i koden din. Tenk for eksempel på denne settermetoden:

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

Ved å bruke setNumbermetoden kan du være sikker på at verdien til numberalltid er mellom 1 og 10. Dette er mye bedre enn å oppdatere numbervariabelen direkte:

obj.number = 13;

Hvis du oppdaterer numberdirekte, er det mulig at du vil forårsake utilsiktede bivirkninger et annet sted i koden din. Her numberbryter innstillingen til 13 den 1 til 10 begrensningen vi ønsker å etablere.

Å lage numberen privat variabel og bruke setNumbermetoden vil forhindre at dette skjer.

På den annen side er den eneste måten å lese verdien av å numberbruke en getter-metode:

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