Înainte de a aborda acest concept, trebuie să fiți conștienți de clase și de încapsulare în Java .
Încapsulare în Java
Încapsularea, după cum sugerează și numele, este procesul de includere a datelor și metodelor ca o singură unitate. În programarea orientată pe obiecte , membrii de date ai unei clase devin private pentru a restricționa accesul direct la ei. Deci, membrii datelor încapsulate nu pot fi recuperați sau modificați fără o modalitate bine definită. Pentru aceasta, definim metode accesorii și mutatoare în Java. Să aruncăm o privire asupra acestor metode în detaliu.Ce sunt accesorii și mutatorii în Java?
Accesorii
Numele metodei accesorii este determinat de cuvântul „ acces ”, care permite utilizatorului să acceseze informațiile private dintr-o clasă. Dacă ați auzit vreodată de metoda „ get ” sau „ getters ”, este același lucru ca accesori. Getterii preiau variabilele private și constantele pentru a le accesa în afara domeniului unei clase.Sintaxă
Folosim cuvântul cheie „ get ” pentru accesorii Java. Pentru a accesa variabila „ name ” putem folosi următorul getter getName() . Pentru exemplul metodei accesorii, aruncați o privire la următoarele.public class Student {
private String name;
public String getName() {
return name;
}
}
Vă rugăm să rețineți că fiecare getter are cuvântul cheie „ get ” înainte de numele variabilei din semnătura metodei și tipul de returnare este același cu cel al variabilei care trebuie returnată. Deoarece variabila „ nume ” este de tip „ String ”, deci metoda getter/accessor returnează și un „ String ”.
Mutatori
Metoda mutatorului din Java este condusă de cuvântul „mutate”, care înseamnă literal a modifica. Mutatorii permit utilizatorilor să seteze/modeze valoarea variabilelor private ale unui obiect de clasă. În contextul programării orientate pe obiecte, metoda „ set ” sau „ setters ” sunt cunoscute și sub denumirea de mutatori. Setterii facilitează încapsularea deoarece membrii datelor private nu pot fi modificați direct. Deci, metodele/mutatorii setterului sunt utilizați pentru a actualiza valoarea unei variabile în afara domeniului de aplicare a clasei.Sintaxă
Pentru mutatori, folosim cuvântul cheie „ set ”. Fiecare setter este definit de cuvântul cheie „set” urmat de numele variabilei care trebuie mutată. Aici, folosim setter-ul setName() care ia ca parametru o variabilă de tip String.public class Student {
private String name;
public void setName(String name) {
this.name = name;
}
}
De ce avem nevoie de accesorii și mutatori?
Avem nevoie de getters și setters sau accesori și mutatori pentru a proteja informațiile sensibile dintr-o clasă. Informațiile sunt protejate împotriva utilizării ilegale prin utilizarea acestor metode standard. Mai mult, setul de date dintr-un mutator poate fi validat și dacă îndeplinește toate cerințele unui program.Exemple de accesorii și mutatori
Folosind clasa de studenți de mai jos, să ne uităm la exemplele metodelor accesorii și mutatorului.Exemplu
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()));
}
}
Ieșire
Biografia studentului [ Înainte de a folosi accesorii și mutatorii ] Nume: null ID: null GPA: 0.0 DOB: null Cursuri: null Biografia studentului [ După utilizarea mutatorilor și accesoriilor ] Nume: Alex Coy ID: 3115 GPA: 2.79 DOB: 08/08/1998 Cursuri: [Programare orientată pe obiecte, criptografie, fotografie, securitate rețelei]