12.3. Méthodes d'encapsulation et d'accès (getters et setters)

L'encapsulation est l'un des quatre principes fondamentaux de la programmation orientée objet (POO), aux côtés de l'héritage, du polymorphisme et de l'abstraction. Il est essentiel pour créer des logiciels sécurisés, fiables et faciles à entretenir. L'encapsulation en Java est implémentée grâce à l'utilisation de modificateurs d'accès et de méthodes d'accès, appelées getters et setters.

Modificateurs d'accès : privé, protégé, public

Les modificateurs d'accès en Java définissent la visibilité d'une classe, d'une méthode ou d'une variable par rapport à d'autres parties du code. Il existe trois principaux modificateurs d'accès :

  • privé : le membre n'est accessible qu'au sein de la classe elle-même. Il s'agit du niveau d'accès le plus restrictif. Il est utilisé pour masquer les détails de mise en œuvre et maintenir l'intégrité des données.
  • protégé : le membre est accessible au sein de la classe elle-même, dans les sous-classes (même si elles sont dans des packages différents) et dans d'autres classes du même package. Il est moins restrictif que privé et est couramment utilisé dans les situations où il y a héritage.
  • public : le membre est accessible depuis n'importe quelle autre classe, quel que soit le package dans lequel il se trouve. Il s'agit du niveau d'accès le moins restrictif et doit être utilisé avec prudence car il expose les membres au monde extérieur.

L'encapsulation en pratique

L'encapsulation est la pratique consistant à masquer les détails d'implémentation internes d'une classe et à exposer uniquement les méthodes nécessaires à l'utilisation de cette classe. Ceci est fait pour éviter l'accès direct aux champs (également appelés variables d'instance) d'une classe, ce qui pourrait entraîner des états incohérents ou indésirables. Au lieu de cela, les champs sont marqués comme privés et accessibles via des méthodes publiques, des getters et des setters.

Getters et Setters

Les getters et setters sont des méthodes publiques qui permettent de lire (get) et de modifier (set) les champs privés d'une classe. Ils constituent le port d'entrée et de sortie des données encapsulées. La convention en Java est de nommer ces méthodes comme getFieldName pour les getters et setFieldName pour les setters, où FieldName commence par une lettre majuscule et correspond au nom du champ privé.

Exemple d'encapsulation avec des getters et des setters

personne de classe publique { nom de chaîne privé ; âge int privé ; // Getter pour le champ nom chaîne publique getName() { renvoyer le nom ; } // Setter pour le champ nom public void setName (nom de la chaîne) { this.name = nom ; } // Getter pour le champ âge public int getAge() { âge de retour; } // Setter pour le champ age public void setAge(int âge) { si (âge > 0) { this.age = âge; } autre { throw new IllegalArgumentException("L'âge doit être supérieur à zéro."); } } }

Dans cet exemple, la classe Person a deux champs privés : name et age. Les méthodes getters et setters correspondantes permettent un accès contrôlé à ces champs. Notez que dans le setter setAge, il existe une vérification pour garantir que l'âge n'est pas négatif, ce qui est un exemple de la façon dont l'encapsulation aide à maintenir l'intégrité des données.

Avantages de l'encapsulation

L'encapsulation offre plusieurs avantages, notamment :

  • Contrôle d'accès : les développeurs peuvent contrôler qui a accès aux variables d'instance d'une classe.
  • Flexibilité et maintenance : l'implémentation interne d'une classe peut être modifiée sans affecter les classes qui l'utilisent, tant que les méthodes d'accès restent les mêmes.
  • Sécurité accrue : en évitant l'accès direct aux champs, il est possible d'éviter les états incohérents et de protéger les données contre les manipulations indésirables.

Conclusion

L'encapsulation est un concept fondamental de la programmation orientée objet qui permet de protéger les données et de maintenir le code organisé et sécurisé. Les modificateurs d'accès privé, protégé et public sont des outils puissants pour contrôler la visibilité des membres d'une classe. Les getters et setters sont les méthodes qui vous permettent d'interagir avec ces membres de manière contrôlée, en respectant les règles métier et en maintenant l'intégrité des données. En comprenant et en appliquant correctement l'encapsulation, les programmeurs peuvent créer des systèmes robustes et faciles à entretenir.

Répondez maintenant à l’exercice sur le contenu :

Parmi les affirmations suivantes concernant l’encapsulation en Java, laquelle est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Encapsulation et méthodes accesseurs (getters et setters) : Définition des méthodes accesseurs (getters)

Page suivante de lebook gratuit :

78Encapsulation et méthodes accesseurs (getters et setters) : Définition des méthodes accesseurs (getters)

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte