Java Tutorial

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’un private
    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 setsuivi 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 privatenous
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 publicnous 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 le set 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

Related Articles

Back to top button