Encapsulation Java et getters et setters

Encapsulation
Le sens de Encapsulation, est de s’assurer que les données “sensibles” sont cachées aux utilisateurs. Pour y parvenir, vous devez :
- déclarer les variables/attributs de classe comme
private
- fournir publiquement obtenir
et ensemble méthodes pour accéder et mettre à jour la valeur d’unprivate
variable
Obtenir et définir
Vous avez appris du chapitre précédent que private
les variables ne sont accessibles qu’au sein d’une même classe (une classe extérieure n’y a pas accès). Cependant, il est possible d’y accéder si nous fournissons des obtenir et ensemble méthodes.
Le get
renvoie la valeur de la variable et la méthode set
La méthode définit la valeur.
La syntaxe pour les deux est qu’ils commencent par soit get
ou set
suivi du nom de la variable, avec la première lettre en majuscule :
Exemple
public class Person {
private String name; // private = restricted access
// Getter
public String getName() {
return name;
}
// Setter
public void setName(String newName) {
this.name = newName;
}
}
Exemple expliqué
Le get
la méthode renvoie la valeur de la variable name
.
Le set
la méthode prend un paramètre (newName
) et l’attribue au
name
variable. Le this
mot-clé est utilisé pour faire référence à l’objet courant.
Cependant, comme le name
la variable est déclarée comme private
nous
ne peut pas y accéder depuis l’extérieur de cette classe :
Exemple
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.name = "John"; // error
System.out.println(myObj.name); // error
}
}
Exemple d’exécution »
Si la variable a été déclarée comme public
nous attendrions la sortie suivante :
Cependant, alors que nous essayons d’accéder à un private
variable, nous obtenons une erreur :
MyClass.java:4: error: name has private access in Person
myObj.name = "John";
^
MyClass.java:5: error: name has private access in Person
System.out.println(myObj.name);
^
2 errors
Au lieu de cela, nous utilisons le getName()
et setName()
méthodes pour accéder et mettre à jour la variable :
Exemple
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.setName("John"); // Set the value of the name variable to "John"
System.out.println(myObj.getName());
}
}
// Outputs "John"
Essayez-le vous-même »
Pourquoi l’encapsulation ?
- Meilleur contrôle des attributs de classe et des méthodes
- Les attributs de classe peuvent être créés lecture seulement (si vous n’utilisez que le
get
méthode), ou en écriture seule (si vous n’utilisez que leset
méthode) - Flexible : le programmeur peut modifier une partie du code sans affecter les autres parties
- Sécurité accrue des données
#Encapsulation #Java #getters #setters