Encapsulation Java


Dans les méthodes de programmation orientée objet, l'encapsulation (anglais : Encapsulation) désigne une méthode consistant à encapsuler et à masquer les détails d'implémentation d'une interface de fonction abstraite.

L'encapsulation peut être considérée comme une barrière de protection qui empêche le code et les données de la classe d'être accédés de manière arbitraire par du code défini par des classes externes.

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

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

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

Avantages de l'encapsulation

  • 1. Une bonne encapsulation peut réduire le couplage.

  • 2. La structure interne de la classe peut être modifiée librement.

  • 3. Les variables membres peuvent être contrôlées plus précisément.

  • 4. Masquer les informations et les détails d'implémentation.


Étapes pour réaliser l'encapsulation en Java

1. Modifier la visibilité des attributs pour restreindre l'accès aux attributs (généralement restreints à private), par exemple :

public class Person { private String name; private int age; }

Dans ce code, lenameetageattribut est défini sur private ; seule cette classe peut y accéder, tandis que les autres classes ne le peuvent pas, ce qui masque l'information.

2. Pour chaque attribut de valeur, fournissez des méthodes publiques pour un accès externe, c'est-à-dire créez une paire de méthodes getter et setter pour accéder aux attributs privés, par exemple :

public class Person{ private String name; private int age; ​ public int getAge(){ return age; } ​ public String getName(){ return name; } ​ public void setAge(int age){ this.age = age; } ​ public void setName(String name){ this.name = name; } }

En utilisantthis,le mot-clé est utilisé pour résoudre le conflit de même nom entre la variable d'instance (private String name) et la variable locale (la variable name dans setName(String name)).


Exemple

Regardons un exemple de classe d'encapsulation Java :

Code du fichier EncapTest.java :

/*Nom du fichier : 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, les méthodes publiques sont le point d'entrée permettant aux classes externes d'accéder aux variables membres de la classe.

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

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

L'exemple suivant illustre comment les variables de la classe EncapTest sont accessibles :

Code du fichier RunEncap.java :

/*Nom du fichier : 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("Nom : " + encap.getName()+ " Âge : "+ encap.getAge()); } }

Le résultat de la compilation et de l'exécution du code ci-dessus est le suivant :

Name : James Age : 20
Autres extensions