logo

Accessor en Mutator in Java

Bij objectgeoriënteerd programmeren is inkapseling een fundamenteel concept dat verwijst naar de praktijk van het verbergen van de implementatiedetails van een object en het bieden van een interface voor toegang tot de eigenschappen en het gedrag ervan. Accessor- en mutatormethoden zijn twee belangrijke concepten die verband houden met inkapseling in Java.

Accessoire

Accessor-methoden, ook wel getter-methoden genoemd, zijn methoden waarmee u de waarde van de privé-instantievariabelen van een object kunt ophalen. Deze methoden bieden alleen-lezen toegang tot de status van het object. Door accessormethoden te gebruiken, kunt u ervoor zorgen dat de status van het object niet per ongeluk of kwaadwillig wordt gewijzigd door externe code.

Mutator

Mutatormethoden, ook wel settermethoden genoemd, zijn methoden waarmee u de waarde van de privé-instantievariabelen van een object kunt wijzigen. Deze methoden bieden alleen-schrijven-toegang tot de status van het object. Door mutatormethoden te gebruiken, kunt u ervoor zorgen dat de status van het object alleen via een gecontroleerde interface wordt gewijzigd.

Laten we een voorbeeld bekijken om het concept van accessor- en mutatormethoden in Java te begrijpen. Stel dat we een klasse hebben met de naam Persoon die drie privé-instantievariabelen heeft: naam, leeftijd en e-mailadres. We willen toegang bieden tot deze variabelen met behulp van accessor- en mutatormethoden.

 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; } } 

In dit voorbeeld hebben we drie accessormethoden gedefinieerd: getName(), getAge() en getEmail(), en drie mutatormethoden: setName(), setAge() en setEmail(). De accessormethoden retourneren de waarde van de corresponderende instantievariabele, terwijl de mutatormethoden de waarde van de corresponderende instantievariabele instellen.

Naamgeving

De naamgevingsconventie voor accessor- en mutatormethoden is belangrijk in Java. Accessor-methoden moeten een naam krijgen die begint met 'get', gevolgd door de naam van de variabele, waarbij de eerste letter een hoofdletter is. Mutatormethoden moeten een naam krijgen die begint met 'set', gevolgd door de naam van de variabele, waarbij de eerste letter een hoofdletter is. Deze naamgevingsconventie maakt duidelijk wat elke methode doet en maakt de code beter leesbaar en onderhoudbaar.

Accessor- en mutatormethoden vormen een essentieel onderdeel van inkapseling in Java. Hiermee kunt u de toegang tot de status van een object controleren, zodat u er zeker van kunt zijn dat deze alleen via een gecontroleerde interface toegankelijk en gewijzigd kan worden. Door de naamgevingsconventie voor accessor- en mutatormethoden te volgen, kunnen we uw code beter leesbaar en onderhoudbaar maken.

hier is een voorbeeldprogramma dat het gebruik van accessor- en mutator-methoden in Java demonstreert:

Persoon.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()); } } 

Uitgang:

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

In dit voorbeeld maakt de hoofdmethode een nieuw exemplaar van de klasse Person en gebruikt de mutatormethoden (setName, setAge en setEmail) om de waarden van de privé-instantievariabelen van het object in te stellen. Vervolgens worden de accessormethoden (getName, getAge en getEmail) gebruikt om de waarden van de instantievariabelen op te halen en deze op de console weer te geven.

Voordeel van het gebruik van Accessor en Mutator

Het voordeel van het gebruik van accessor- en mutatormethoden is dat we hiermee validatie en andere verwerkingslogica kunnen toevoegen aan het proces van het verkrijgen en instellen van de status van een object. U kunt bijvoorbeeld een validatiecontrole toevoegen aan de methode 'setAge(int age)' om ervoor te zorgen dat de leeftijdswaarde binnen een bepaald bereik ligt, of opmaaklogica toevoegen aan de methode 'getName()' om de eerste letter van de persoons naam.