Encapsulation Java



Dans les méthodes de programmation orientées objet, l'encapsulation (anglais : Encapsulation) fait référence à une méthode d'empaquetage partiel et de masquage des détails d'implémentation d'une interface fonctionnelle abstraite.

L'encapsulation peut être considérée comme une barrière de protection qui empêche l'accès aléatoire au code et aux données de la classe par le code défini par la classe externe.

Pour accéder au code et aux données de cette classe, vous devez passer un contrôle d'interface strict.

La fonction principale de l'encapsulation est que nous pouvons modifier notre propre code d'implémentation sans modifier les fragments de programme qui appellent notre code.

Une encapsulation appropriée peut rendre le code du programme plus facile à comprendre et à maintenir, et également améliorer la sécurité du code du programme.

Exemple

Regardons un exemple de classe d'encapsulation Java :

/* 文件名: 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;
   }
}

Dans l'exemple ci-dessus, la méthode publique est l'entrée permettant à la classe externe d'accéder au variables membres de la classe.

Normalement, ces méthodes sont appelées méthodes getter et setter.

Par conséquent, toute classe souhaitant accéder aux variables membres privées de la classe doit passer par ces méthodes getter et setter.

L'exemple suivant illustre comment accéder aux variables de la classe EncapTest :

/* F文件名 : 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());
    }
}

Le code ci-dessus est compilé et exécuté et les résultats sont les suivants :

Name : James Age : 20