Mielőtt belemerülnénk ebbe a koncepcióba, tisztában kell lennie a Java osztályokkal és tokozással .
Beágyazás Java nyelven
A beágyazás, ahogy a neve is sugallja, az adatok és a módszerek egyetlen egységként való összefoglalásának folyamata. Az objektum-orientált programozásban az osztály adattagjait priváttá teszik, hogy korlátozzák a közvetlen hozzáférést. Így a beágyazott adattagok nem kérhetők le vagy módosíthatók megfelelően meghatározott módon. Ehhez Java-ban definiáljuk az accessor és a mutator metódusokat. Nézzük meg ezeket a módszereket részletesen.Mik azok az accessorok és mutátorok a Java-ban?
Kiegészítők
Az accessor metódus nevét az „ access ” szó vezeti, amely lehetővé teszi a felhasználó számára, hogy hozzáférjen az osztály privát információihoz. Ha valaha is hallott a „ get ” módszerről vagy a „ getterekről ”, az ugyanaz, mint az accessorok. A getterek lekérik a privát változókat és konstansokat, hogy egy osztály hatókörén kívül is hozzáférjenek.Szintaxis
A „ get ” kulcsszót használjuk a Java-elfogadókra. A „ name ” változó eléréséhez használhatjuk a következő getName() gettert . Az accessor metódus példájához nézze meg a következőket.
public class Student {
private String name;
public String getName() {
return name;
}
}
Kérjük, vegye figyelembe, hogy minden getternél a változó neve előtt szerepel a „ get ” kulcsszó a metódus aláírásában, és a visszatérési típus megegyezik a visszaküldendő változóéval. Mivel a „ name ” változó „ String ” típusú, így a getter/accessor metódus is „ String ”-et ad vissza.
Mutátorok
A Java mutátoros módszerét a „mutate” szó hajtja, ami szó szerint azt jelenti, hogy módosítani kell. A mutátorok lehetővé teszik a felhasználók számára, hogy beállítsák/mutálják egy osztályobjektum privát változóinak értékét. Az objektum-orientált programozási környezetben a „ set ” metódus vagy a „ setterek ” mutátoroknak is ismertek. A setterek megkönnyítik a beágyazást, mivel a privát adattagok közvetlenül nem módosíthatók. Tehát setter metódusokat/mutátorokat használnak a változó értékének frissítésére az osztály hatókörén kívül.Szintaxis
A mutátorok esetében a „ set ” kulcsszót használjuk . Minden settert a „set” kulcsszó határoz meg, amelyet a mutációra szoruló változó neve követ. Itt a setName() settert használjuk, amely egy String típusú változót vesz paraméterként.
public class Student {
private String name;
public void setName(String name) {
this.name = name;
}
}
Miért van szükségünk hozzáférőkre és mutátorokra?
Getterekre és setterekre, vagy accessorokra és mutátorokra van szükségünk az osztály érzékeny információinak védelméhez. Ezekkel a szabványos módszerekkel védjük az információkat az illegális felhasználástól. Sőt, a mutátorban lévő adathalmaz is érvényesíthető, ha megfelel egy program minden követelményének.Példák hozzáférőre és mutátorra
Az alábbi tanulói osztály használatával nézzük meg az accessor és a mutator metódusok példáit.Példa
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()));
}
}
Kimenet
Student Bio [ Az Accessors & Mutators használata előtt ] Név: null ID: null GPA: 0.0 DOB: null Tanfolyamok: null Student Bio [ A Mutators & Accessors használata után ] Név: Alex Coy ID: 3115 GPA: 2,79 DOB: 1998.08.08. Tanfolyamok: [objektumorientált programozás, kriptográfia, fotózás, hálózatbiztonság]
GO TO FULL VERSION