En la programació orientada a objectes, l'encapsulació és un concepte fonamental que fa referència a la pràctica d'amagar els detalls d'implementació d'un objecte i proporcionar una interfície per accedir a les seves propietats i comportaments. Els mètodes d'accés i mutador són dos conceptes importants relacionats amb l'encapsulació a Java.
Accessor
Els mètodes d'accés, també coneguts com a mètodes getter, són mètodes que us permeten recuperar el valor de les variables d'instància privades d'un objecte. Aquests mètodes proporcionen accés de només lectura a l'estat de l'objecte. Mitjançant l'ús de mètodes d'accés, podeu assegurar-vos que l'estat de l'objecte no es modifiqui de manera accidental o maliciosa per codi extern.
Mutador
Els mètodes mutadors, també coneguts com a mètodes setter, són mètodes que permeten modificar el valor de les variables d'instància privades d'un objecte. Aquests mètodes proporcionen accés només d'escriptura a l'estat de l'objecte. Mitjançant l'ús de mètodes mutadors, podeu assegurar-vos que l'estat de l'objecte només es modifica mitjançant una interfície controlada.
Fem una ullada a un exemple per entendre el concepte de mètodes d'accés i mutador a Java. Suposem que tenim una classe anomenada Persona que té tres variables d'instància privades: nom, edat i correu electrònic. Volem proporcionar accés a aquestes variables mitjançant mètodes d'accés i mutador.
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; } }
En aquest exemple, hem definit tres mètodes d'accés: getName(), getAge() i getEmail(), i tres mètodes mutadors: setName(), setAge() i setEmail(). Els mètodes d'accés retornen el valor de la variable d'instància corresponent, mentre que els mètodes mutadors estableixen el valor de la variable d'instància corresponent.
Convenció de nomenclatura
La convenció de nomenclatura per als mètodes d'accés i mutador és important a Java. Els mètodes d'accés s'han de nomenar començant per 'get' seguit del nom de la variable, amb la primera lletra en majúscula. Els mètodes mutadors s'han de nomenar començant per 'set' seguit del nom de la variable, amb la primera lletra en majúscula. Aquesta convenció de nomenclatura deixa clar què fa cada mètode i fa que el codi sigui més llegible i fàcil de mantenir.
Els mètodes d'accés i mutador són una part essencial de l'encapsulació a Java. Permeten controlar l'accés a l'estat d'un objecte, assegurant que només s'accedeix i es modifica mitjançant una interfície controlada. Seguint la convenció de nomenclatura per als mètodes d'accés i mutador, podem fer que el vostre codi sigui més llegible i fàcil de mantenir.
aquí hi ha un exemple de programa que demostra l'ús de mètodes d'accés i mutador a Java:
Person.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()); } }
Sortida:
Name: Manoj Age: 21 Email: [email protected]
En aquest exemple, el mètode principal crea una nova instància de la classe Person i utilitza els mètodes mutadors (setName, setAge i setEmail) per establir els valors de les variables d'instància privades de l'objecte. A continuació, s'utilitzen els mètodes d'accés (getName, getAge i getEmail) per recuperar els valors de les variables d'instància i mostrar-los a la consola.
Avantatge d'utilitzar Accessor i Mutator
L'avantatge d'utilitzar mètodes d'accés i mutador és que ens permeten afegir validació i altres lògiques de processament al procés d'obtenció i configuració de l'estat d'un objecte. Per exemple, podeu afegir una comprovació de validació al mètode 'setAge(int age)' per assegurar-vos que el valor d'edat es troba dins d'un interval determinat, o afegir una lògica de format al mètode 'getName()' per posar en majúscula la primera lletra del nom de la persona.