logo

Accesseur et Mutateur en Java

Dans la programmation orientée objet, l'encapsulation est un concept fondamental qui fait référence à la pratique consistant à masquer les détails d'implémentation d'un objet et à fournir une interface pour accéder à ses propriétés et comportements. Les méthodes accesseurs et mutateurs sont deux concepts importants liés à l'encapsulation en Java.

Accesseur

Les méthodes accesseurs, également appelées méthodes getter, sont des méthodes qui vous permettent de récupérer la valeur des variables d'instance privées d'un objet. Ces méthodes fournissent un accès en lecture seule à l'état de l'objet. En utilisant des méthodes d'accès, vous pouvez garantir que l'état de l'objet n'est pas modifié accidentellement ou de manière malveillante par du code externe.

Mutateur

Les méthodes Mutator, également appelées méthodes setter, sont des méthodes qui vous permettent de modifier la valeur des variables d'instance privées d'un objet. Ces méthodes fournissent un accès en écriture seule à l'état de l'objet. En utilisant des méthodes mutatrices, vous pouvez garantir que l'état de l'objet est modifié uniquement via une interface contrôlée.

Jetons un coup d'œil à un exemple pour comprendre le concept de méthodes accesseurs et mutateurs en Java. Supposons que nous ayons une classe appelée Person qui possède trois variables d'instance privées : nom, âge et adresse e-mail. Nous souhaitons donner accès à ces variables à l’aide de méthodes accesseurs et mutateurs.

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

Dans cet exemple, nous avons défini trois méthodes d'accès : getName(), getAge() et getEmail(), ainsi que trois méthodes de mutation : setName(), setAge() et setEmail(). Les méthodes accesseurs renvoient la valeur de la variable d'instance correspondante, tandis que les méthodes mutatrices définissent la valeur de la variable d'instance correspondante.

Convention de dénomination

La convention de dénomination des méthodes accesseurs et mutateurs est importante en Java. Les méthodes accesseurs doivent être nommées en commençant par « get » suivi du nom de la variable, avec la première lettre en majuscule. Les méthodes Mutator doivent être nommées en commençant par « set » suivi du nom de la variable, avec la première lettre en majuscule. Cette convention de dénomination indique clairement ce que fait chaque méthode et rend le code plus lisible et maintenable.

Les méthodes accesseurs et mutateurs sont une partie essentielle de l’encapsulation en Java. Ils vous permettent de contrôler l'accès à l'état d'un objet, en garantissant qu'il est accessible et modifié uniquement via une interface contrôlée. En suivant la convention de dénomination des méthodes accesseurs et mutateurs, nous pouvons rendre votre code plus lisible et maintenable.

voici un exemple de programme qui démontre l'utilisation des méthodes accesseur et mutateur en Java :

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

Sortir:

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

Dans cet exemple, la méthode main crée une nouvelle instance de la classe Person et utilise les méthodes mutatrices (setName, setAge et setEmail) pour définir les valeurs des variables d'instance privées de l'objet. Ensuite, les méthodes d'accès (getName, getAge et getEmail) sont utilisées pour récupérer les valeurs des variables d'instance et les afficher sur la console.

Avantage d'utiliser l'accesseur et le mutateur

L'avantage d'utiliser les méthodes d'accès et de mutation est qu'elles nous permettent d'ajouter une validation et d'autres logiques de traitement au processus d'obtention et de définition de l'état d'un objet. Par exemple, vous pouvez ajouter un contrôle de validation à la méthode « setAge(int age) » pour garantir que la valeur d'âge se situe dans une certaine plage, ou ajouter une logique de formatage à la méthode « getName() » pour mettre en majuscule la première lettre du Nom de la personne.