“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 286 — #296
i
i
i
i
i
i
i
i
286
6
• La programmation orientée objet
6.3.4 Le contrôle d’encapsulation
Le principe du contrôle d’encapsulation est de limiter l’accès aux membres d’une
classe selon les besoins de l’architecture de l’application. Chaque membre est défini
avec une portée. La portée est la partie du texte du programme dans laquelle le membre
est visible, c’est-à-dire que l’on peut y accéder simplement en mentionnant son nom.
Dans la plupart des cas, la portée est statique, définie par la structure du programme.
Si on utilise des noms, elle pourra aussi être dynamique.
Un langage donne en général une portée par défaut à chaque membre quand il est
déclaré. Ce défaut peut être modifié avec des mots clés spéciaux. Certains mots clés
utilisés sont public, private et protected. Il se trouve que différents langages
utilisent ces mots pour des portées légèrement différentes. Dans l’esprit de [25], nous
essaierons de mettre de l’ordre dans ce chaos.
Les portées privées et publiques
Les deux portées les plus fondamentales sont la portée privée (« private ») et la portée
publique (« public ») :
– Un membre privé est visible seulement dans l’objet lui-même. L’objet peut voir
tous les membres privés définis dans sa classe et ses superclasses. Privée définit
une sorte de visibilité verticale.
– Un membre public est visible partout dans le programme.
Dans les langages Smalltalk et Oz, les attributs sont privés et les méthodes sont
publiques.
Ces définitions de privé et public sont naturelles si les classes sont utilisées pour
construire des abstractions de données :
– D’abord, une classe n’est pas la même chose que l’abstraction qu’elle définit !
La classe est un incrément ; elle définit une abstraction de données comme une
modification incrémentale des superclasses. La classe est nécessaire seulement
pendant la construction de l’abstraction. L’abstraction de données n’est pas cependant un incrément ; elle contient tous ses attributs et méthodes. Ses attributs et
méthodes peuvent venir de la classe ou d’une superclasse.
– Ensuite, les attributs sont internes à l’abstraction et doivent être invisibles de
l’extérieur. C’est exactement la définition de portée privée.
– Enfin, les méthodes sont l’interface externe de l’abstraction, elles doivent donc
être visibles pour toutes les entités qui référencent l’abstraction. C’est exactement
la définition de portée publique.
Précédent

- 301/370

Suivant