 |
 |
6.8.1 Encapsulation avec le concept de
Visibilité
- Les attributs sont en général inaccessibles (secrets). Ils
sont alors qualifiés de :
- « private » :
notation UML « − »
- Lecture ou modification uniquement possibles au travers des
opérations
(p.ex. les accesseurs : getAdresse(),
setAdresse())
- Les opérations sont en général accessibles par toutes les
classes. Elles sont alors qualifiées de :
- « public » :
notation UML « + »
- Certains attributs doivent être accessibles par les classes
enfants et inaccessibles aux autres classes. Ils sont alors qualifiés de :
- « protected » :
notation UML « # »
- Certaines opérations peuvent cependant être privées
(factorisation interne de traitements) et certains attributs peuvent être
publics (même si cela est non souhaitable selon le principe
d’encapsulation)
précédent suivant
Pour respecter le principe d’encapsulation, les
attributs sont privés (préfixés par le signe « − ») et les opérations sont publiques (préfixées
par le signe « + »). Les opérations
nécessaires au fonctionnement interne des classes sont elles-aussi privées.
L’héritage est le mécanisme langage pour réaliser la
généralisation spécialisation. Le travail à effectuer est de vérifier la
visibilité des attributs pour les classes enfants. Si un attribut privé de la
classe parente doit être « présent » dans ses classes enfants
(c’est-à-dire doit être accessible par les classes enfants), ou si un
attribut n’est accédé que par ses classes enfants, cet attribut possède
la visibilité « protégée » (attribut préfixé par « # » dans la classe parente).
Dans le cours sur la programmation orientée objet, nous
verrons que certains languages comme Java introduisent d’autres types de
visibilité. Par exemple, le langage Java ajoute aux trois visibilités étudiées
ici (privée, protégée, publique) la visibilité « paquetage ». Dans ce
cours sur la modélisation orientée objet, nous ignorons ces autres types de
visibilité.
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2014
|
|