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]
GO TO FULL VERSION