L'encapsulation est un mécanisme consistant à rassembler les 
données
et les méthodes au sein d'une structure en cachant 
l'implémentation de l'objet,
c'est-à-dire en empêchant l'accès aux données par un 
autre moyen que
les services proposés. L'encapsulation permet donc de garantir 
l'intégrité
des données contenues dans l'objet.
 
 
L'utilisateur d'une classe n'a pas forcément à savoir
de quelle façon sont structurées les données dans l'objet,
cela
signifie qu'un utilisateur
n'a pas à connaître l'implémentation. Ainsi, en interdisant 
l'utilisateur
de modifier directement les attributs, et en l'obligeant à utiliser les 
fonctions définies
pour les modifier (appelées interfaces), on est capable de 
s'assurer de l'intégrité des données
(on pourra par exemple s'assurer que le type des données fournies est 
conforme à nos
attentes, ou encore que les données se trouvent bien dans l'intervalle 
attendu).
 L'encapsulation permet de définir des niveaux de 
visibilité des éléments
de la classe. Ces niveaux de visibilité définissent les droits 
d'accès aux
données selon que l'on y accède par une méthode de la 
classe elle-même, d'une
classe héritière, ou bien d'une
classe 
quelconque. Il existe
trois niveaux de visibilité:
 
- publique: les fonctions de toutes les classes peuvent accéder 
aux données ou 
aux méthodes d'une classe définie avec le niveau de 
visibilité public. Il s'agit
du plus bas niveau de protection des données
 
- protégée: l'accès aux données est 
réservé aux fonctions des classes
héritières, c'est-à-dire par 
les 
fonctions membres de la classe ainsi que des
classes dérivées
 
- privée: l'accès aux données est limité 
aux méthodes de la classe elle-même. Il
s'agit du niveau de protection des données le plus 
élevé
 
 
  
  
 
 |