Før vi dykker ned i dette konseptet, må du være klar over klasser og innkapsling i Java .
Innkapsling i Java
Innkapsling, som navnet antyder, er prosessen med å omslutte data og metoder som en enkelt enhet. I objektorientert programmering blir datamedlemmene i en klasse gjort private for å begrense direkte tilgang til dem. Så de innkapslede datamedlemmene kan ikke hentes eller endres uten en riktig definert måte. For dette definerer vi tilgangs- og mutatormetoder i Java. La oss se nærmere på disse metodene.Hva er accessorer og mutatorer i Java?
Tilbehør
Accessormetodens navn er drevet av ordet " tilgang " som lar brukeren få tilgang til den private informasjonen i en klasse. Hvis du noen gang har hørt om " get "-metoden eller " getters ", er det det samme som tilbehør. Getterne henter de private variablene og konstantene for å få tilgang utenfor omfanget av en klasse.Syntaks
Vi bruker søkeordet " get " for Java-tilbehør. For å få tilgang til variabelen “ navn ” kan vi bruke følgende getter getName() . For eksempelet til tilgangsmetoden, ta en titt på følgende.public class Student {
private String name;
public String getName() {
return name;
}
}
Vær oppmerksom på at hver getter har nøkkelordet " get " før variabelnavnet i metodesignaturen, og returtypen er den samme som for variabelen som skal returneres. Siden variabelen " navn " er av typen " String ", så returnerer getter/accessor-metoden også en " String ".
Mutatorer
Mutatormetoden i Java er drevet av ordet "mutere", som bokstavelig talt betyr å modifisere. Mutatorer lar brukerne angi/mutere verdien av private variabler til et klasseobjekt. I objektorientert programmeringssammenheng er " sett "-metoden eller " settere " også kjent som mutatorer. Settere forenkler innkapsling ettersom private datamedlemmer ikke kan endres direkte. Så settermetoder/mutatorer brukes til å oppdatere en variabels verdi utenfor klasseomfanget.Syntaks
For mutatorer bruker vi nøkkelordet " sett ". Hver setter er definert av nøkkelordet "sett" etterfulgt av navnet på variabelen som må muteres. Her bruker vi setteren setName() som tar en strengtypevariabel som parameter.public class Student {
private String name;
public void setName(String name) {
this.name = name;
}
}
Hvorfor trenger vi accessorer og mutatorer?
Vi trenger gettere og settere eller accessorer og mutatorer for å beskytte sensitiv informasjon i en klasse. Informasjonen er beskyttet mot ulovlig bruk ved å bruke disse standardmetodene. Dessuten kan datasettet i en mutator også valideres hvis det oppfyller alle kravene til et program.Eksempler på tilbehør og mutatorer
Ved å bruke elevklassen nedenfor, la oss se på eksemplene på tilgangs- og mutatormetodene.Eksempel
import java.util.Arrays;
public class Student {
private String name;
private Integer ID;
private String DOB;
private double GPA;
private String[] courses;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
this.ID = iD;
}
public String getDOB() {
return DOB;
}
public void setDOB(String dOB) {
this.DOB = dOB;
}
public double getGPA() {
return GPA;
}
public void setGPA(double gPA) {
this.GPA = gPA;
}
public String[] getCourses() {
return courses;
}
public void setCourses(String[] courses) {
this.courses = courses;
}
public static void main(String[] args) {
Student student1 = new Student();
System.out.println("Student Bio [ Before using Accessors & Mutators ]");
// calling accessor methods
System.out.print("Name: " + student1.getName());
System.out.print("\tID: " + student1.getID());
System.out.print("\tGPA: " + student1.getGPA());
System.out.print("\tDOB: " + student1.getDOB());
System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
// calling mutator methods
student1.setName("Alex Coy");
student1.setID(3115);
student1.setGPA(2.79);
student1.setDOB("08/08/1998");
String[] courses = { "Object Oriented Programming", "Cryptography", "Photography", "Network Security" };
student1.setCourses(courses);
System.out.println("\nStudent Bio [ After using Mutators & Accessors ]");
// calling accessor methods
System.out.print("Name: " + student1.getName());
System.out.print("\tID: " + student1.getID());
System.out.print("\tGPA: " + student1.getGPA());
System.out.print("\tDOB: " + student1.getDOB());
System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
}
}
Produksjon
Studentbiografi [ Før bruk av tilbehør og mutatorer ] Navn: null ID: null GPA: 0.0 DOB: null Kurs: null Studentbiografi [ Etter bruk av mutatorer og tilbehør ] Navn: Alex Coy ID: 3115 GPA: 2.79 DOB: 08/08/1998 Kurs: [Objektorientert programmering, kryptografi, fotografi, nettverkssikkerhet]