Java - Encapsulation

Encapsulationest l'un des quatre concepts fondamentaux de la POO. Les trois autres sont l'héritage, le polymorphisme et l'abstraction.

L'encapsulation en Java est un mécanisme d'encapsulation des données (variables) et du code agissant sur les données (méthodes) ensemble en une seule unité. Dans l'encapsulation, les variables d'une classe seront cachées des autres classes et ne seront accessibles que via les méthodes de leur classe actuelle. Par conséquent, il est également connu sous le nom dedata hiding.

Pour réaliser l'encapsulation en Java -

  • Déclarez les variables d'une classe comme privées.

  • Fournissez des méthodes publiques setter et getter pour modifier et afficher les valeurs des variables.

Exemple

Voici un exemple qui montre comment réaliser l'encapsulation en Java -

/* File name : EncapTest.java */
public class EncapTest {
   private String name;
   private String idNum;
   private int age;

   public int getAge() {
      return age;
   }

   public String getName() {
      return name;
   }

   public String getIdNum() {
      return idNum;
   }

   public void setAge( int newAge) {
      age = newAge;
   }

   public void setName(String newName) {
      name = newName;
   }

   public void setIdNum( String newId) {
      idNum = newId;
   }
}

Les méthodes publiques setXXX () et getXXX () sont les points d'accès des variables d'instance de la classe EncapTest. Normalement, ces méthodes sont appelées getters et setters. Par conséquent, toute classe qui souhaite accéder aux variables doit y accéder via ces getters et setters.

Les variables de la classe EncapTest sont accessibles à l'aide du programme suivant -

/* File name : RunEncap.java */
public class RunEncap {

   public static void main(String args[]) {
      EncapTest encap = new EncapTest();
      encap.setName("James");
      encap.setAge(20);
      encap.setIdNum("12343ms");

      System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());
   }
}

Cela produira le résultat suivant -

Production

Name : James Age : 20

Avantages de l'encapsulation

  • Les champs d'une classe peuvent être rendus en lecture seule ou en écriture seule.

  • Une classe peut avoir un contrôle total sur ce qui est stocké dans ses champs.