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 setNumber
metoden kan du være sikker på at verdien til number
alltid er mellom 1 og 10. Dette er mye bedre enn å oppdatere number
variabelen direkte:
obj.number = 13;
Hvis du oppdaterer number
direkte, er det mulig at du vil forårsake utilsiktede bivirkninger et annet sted i koden din. Her number
bryter innstillingen til 13 den 1 til 10 begrensningen vi ønsker å etablere.
Å lage number
en privat variabel og bruke setNumber
metoden vil forhindre at dette skjer.
På den annen side er den eneste måten å lese verdien av å number
bruke en getter-metode:
public int getNumber() { return this.number; }