logo

Accessor in mutator v Javi

V objektno usmerjenem programiranju je enkapsulacija temeljni koncept, ki se nanaša na prakso skrivanja izvedbenih podrobnosti objekta in zagotavljanje vmesnika za dostop do njegovih lastnosti in vedenja. Metode dostopnika in mutatorja sta dva pomembna pojma, povezana z enkapsulacijo v Javi.

Pripomoček

Metode dostopnika, znane tudi kot metode pridobivanja, so metode, ki vam omogočajo, da pridobite vrednost spremenljivk zasebne instance objekta. Te metode zagotavljajo dostop samo za branje do stanja objekta. Z uporabo metod dostopnika lahko zagotovite, da zunanja koda ne spremeni stanja objekta pomotoma ali zlonamerno.

Mutator

Metode mutatorja, znane tudi kot metode nastavitev, so metode, ki vam omogočajo spreminjanje vrednosti spremenljivk zasebnega primerka objekta. Te metode omogočajo dostop samo za pisanje do stanja objekta. Z uporabo metod mutatorja lahko zagotovite, da se stanje objekta spreminja samo prek nadzorovanega vmesnika.

Oglejmo si primer, da bi razumeli koncept dostopnih in mutatorskih metod v Javi. Recimo, da imamo razred z imenom Oseba, ki ima tri zasebne spremenljivke primerka: ime, starost in e-pošto. Želimo zagotoviti dostop do teh spremenljivk z uporabo metod dostopnika in mutatorja.

 public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } 

V tem primeru smo definirali tri dostopne metode: getName(), getAge() in getEmail() in tri mutatorske metode: setName(), setAge() in setEmail(). Metode dostopnika vrnejo vrednost ustrezne spremenljivke primerka, medtem ko metode mutatorja nastavijo vrednost ustrezne spremenljivke primerka.

Konvencija o poimenovanju

Konvencija o poimenovanju metod dostopnikov in mutatorjev je v Javi pomembna. Metode dostopnika morajo biti poimenovane tako, da se začnejo z 'get', ki mu sledi ime spremenljivke, pri čemer je prva črka velika. Metode mutatorja morajo biti poimenovane tako, da se začnejo z 'set', ki mu sledi ime spremenljivke, pri čemer je prva črka velika. Ta konvencija poimenovanja pojasnjuje, kaj vsaka metoda počne, in naredi kodo bolj berljivo in vzdržljivo.

Metode dostopnika in mutatorja so bistveni del enkapsulacije v Javi. Omogočajo vam nadzor dostopa do stanja objekta, s čimer zagotovite, da se do njega dostopa in ga spreminja samo prek nadzorovanega vmesnika. Če upoštevamo konvencijo o poimenovanju metod dostopnikov in mutatorjev, lahko naredimo vašo kodo bolj berljivo in vzdržljivo.

tukaj je primer programa, ki prikazuje uporabo metod dostopnika in mutatorja v Javi:

Oseba.java

 import java.util.Scanner; public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Person person = new Person(); System.out.print('Enter name: '); String name = scanner.nextLine(); person.setName(name); System.out.print('Enter age: '); int age = scanner.nextInt(); person.setAge(age); scanner.nextLine(); // Consume the newline character left by nextInt() System.out.print('Enter email: '); String email = scanner.nextLine(); person.setEmail(email); System.out.println('
Name: ' + person.getName()); System.out.println('Age: ' + person.getAge()); System.out.println('Email: ' + person.getEmail()); } } 

Izhod:

 Name: Manoj Age: 21 Email: [email protected] 

V tem primeru glavna metoda ustvari nov primerek razreda Person in uporablja metode mutatorja (setName, setAge in setEmail) za nastavitev vrednosti spremenljivk zasebnega primerka objekta. Nato se metode dostopnika (getName, getAge in getEmail) uporabijo za pridobivanje vrednosti spremenljivk primerka in njihov prikaz na konzoli.

Prednost uporabe Accessorja in Mutatorja

Prednost uporabe metod dostopnika in mutatorja je, da nam omogočata, da procesu pridobivanja in nastavljanja stanja objekta dodamo validacijo in drugo logiko obdelave. Na primer, metodi 'setAge(int age)' lahko dodate preverjanje veljavnosti, da zagotovite, da je vrednost starosti znotraj določenega obsega, ali dodate logiko oblikovanja metodi 'getName()', da prvo črko zapisa z veliko začetnico ime osebe.