Før vi dykker ned i dette koncept, skal du være opmærksom på klasser og indkapsling i Java .
Indkapsling i Java
Indkapsling er, som navnet antyder, processen med at omslutte data og metoder som en enkelt enhed. I objektorienteret programmering gøres datamedlemmerne i en klasse private for at begrænse direkte adgang til dem. Så de indkapslede datamedlemmer kan ikke hentes eller ændres uden en korrekt defineret måde. Til dette definerer vi accessor- og mutatormetoder i Java. Lad os se nærmere på disse metoder.Hvad er accessorer og mutatorer i Java?
Tilbehør
Accessormetodens navn er drevet af ordet " adgang ", som giver brugeren adgang til de private oplysninger i en klasse. Hvis du nogensinde har hørt om " get " -metoden eller " getters ", er det det samme som accessorer. Getterne henter de private variabler og konstanter for at få adgang uden for en klasses omfang.Syntaks
Vi bruger søgeordet " get " for Java-accessorer. For at få adgang til variablen " navn " kan vi bruge følgende getter getName() . For accessormetodens eksempel, se følgende.
public class Student {
private String name;
public String getName() {
return name;
}
}
Bemærk venligst, at hver getter har nøgleordet " get " før variabelnavnet i metodesignaturen, og returtypen er den samme som den for den variabel, der skal returneres. Da variablen " name " er af typen " String ", så returnerer getter/accessor-metoden også en " String ".
Mutatorer
Mutatormetoden i Java er drevet af ordet "mutere", som bogstaveligt betyder at modificere. Mutatorer giver brugerne mulighed for at indstille/mutere værdien af private variabler i et klasseobjekt. I den objektorienterede programmeringssammenhæng er " sæt "-metoden eller " sættere " også kendt som mutatorer. Settere letter indkapsling, da private datamedlemmer ikke kan ændres direkte. Så seter-metoder/mutatorer bruges til at opdatere en variabels værdi uden for klassens omfang.Syntaks
For mutatorer bruger vi nøgleordet " set ". Hver sætter er defineret af nøgleordet "sæt" efterfulgt af navnet på den variabel, der skal muteres. Her bruger vi setteren setName() , der tager en strengtypevariabel som parameter.
public class Student {
private String name;
public void setName(String name) {
this.name = name;
}
}
Hvorfor har vi brug for accessorer og mutatorer?
Vi har brug for gettere og sættere eller accessorer og mutatorer til at beskytte følsom information i en klasse. Oplysningerne er beskyttet mod ulovlig brug ved at bruge disse standardmetoder. Desuden kan datasættet i en mutator også valideres, hvis det opfylder alle kravene i et program.Eksempler på accessorer og mutatorer
Ved at bruge elevklassen nedenfor, lad os se på eksemplerne på accessor- og mutatormetoderne.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()));
}
}
Produktion
Student Bio [ Før brug af Accessors & Mutators ] Navn: null ID: null GPA: 0.0 DOB: null Kurser: null Student Bio [ Efter brug af Mutators & Accessors ] Navn: Alex Coy ID: 3115 GPA: 2.79 DOB: 08/08/1998 Kurser: [Objektorienteret programmering, kryptografi, fotografi, netværkssikkerhed]
GO TO FULL VERSION