Accueil
 Sommaire
 1  Objectifs de ce cours de modélisation orientée objet
 2  Généralités sur la modélisation orienté objet et sur UML
 3  Analyse, vues cas d'utilisation et processus
 4  Analyse et conception, aspects statiques de la vue logique
 5  Analyse et conception, aspects dynamiques de la vue logique
 6  Conception, aspects langage et technique
 6.1  Rappel des phases du cycle de développement en V
 6.2  Conception des classes
 6.3  Rappel du diagramme de classes de l'étude de cas Studs
 6.4  Traduction des associations en attributs
 6.5  Traduction des agrégations
 6.6  Traduction des compositions~*
 6.7  Traduction de la classe « Façade » du système
 6.8  Encapsulation: visibilité~/~accessibilité des attributs et des opérations
 6.8.1  Encapsulation avec le concept de Visibilité
 6.8.2  Notation UML
 6.8.3  Cas particulier des attributs/opérations protégés
 6.9  Traduction des attributs dérivés
 6.10  Qualification de certaines associations~*
 6.11  Traduction des diagrammes d'interaction en algorithmes
 6.12  Traduction des diagrammes de machine à états
 6.13  Traduction des relations de généralisation spécialisation
 6.14  Traduction des classes d'association~*
 6.15  Méthodologie: une fiche par classe
 QCM
 7  Conception, vues développement et physique
 8  Conclusion
 9  Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


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.

Dans le cas de 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 2015