Vous êtes sur la page 1sur 2

2.

L’encapsulation :
Définition :
La notion d’encapsulation est un concept très utile de la POO. Il permet en particulier d’entrer une
modification par erreur des données d’un objet. En effet, il n’est alors possible d’agir directement sur
les données d’un objet, il est nécessaire de passer par ses méthodes qui jouent le rôle d’interface
obligatoire
L’encapsulation ou masquage d’information consiste à séparer les aspects externes d’un objet, qu’on
désigne par publiques, des détails d’implémentation internes rendus invisible, qu’on désigne par
privés.

Intérêts :
L’accès à un certains membres d’une classe doit être protégé

- La protection peut être contre soi-même ou contre les membres d’une équipe de
développement ou même contre le grand public des développeurs : Éliminer le risque de
changement d’état d’un objet d’une façon imprévue.
- On veut cacher les détails d’implémentation de la classe soit pour une raison de simplicité soit
pour des raisons de sécurités ou même pour des raisons purement commerciales

Notion de visibilité
L’encapsulation définit les niveaux de visibilité des membres d’une classe
Il existe 3 niveaux de visibilité :

Protected : les données et les fonctions membres ne sont accessibles qu’au sein de la classe et ses
classes dérivées (Héritages).
Pour définir un attribut en protecteed, on fait _
Exemple : _nom, _prénom

Public : les données et fonctions membres sont accessible de l’extérieur.


Pour définir un attribut en public, l’attribut ne prend rien
Exemple : nom, prénom (l’attribut publique ne prend rien)

Private : Les données et fonctions membres ne sont accessible qu’au sein de la classe.
Pour definir un attribut en private, on met __
Exemple : __ nom, __ prénom
Getter & Setter
Il existe des méthodes spéciales appelées getters et setters qui nous permettent d’accéder à des
attributs et méthodes uniques.

Rôle :
- Nous utilisons des getters et des setters pour ajouter une logique de validation autour
de l’obtention et de la définition d’une valeur.
- Pour éviter l’accès direct à un champ de classe, c’est-à-dire que les variables privées
ne peuvent pas être accédées directement ou modifiées par un utilisateur externe
Syntaxe : Getters
Def get NomAttribut (self, NomAttribut) :
Exemple :
Def getAge (Self) :
Return self.age
Syntaxe : Setters
Def set nomAttribut
Self.nomAttribut=nomAttribut
Exemple : Def setAge (self,age) :
Self.age=age

Vous aimerez peut-être aussi