next up previous
suivant: L'héritage monter: Les concepts objets précédent: Les objets et les

Sous-sections

Les classes et les relations interclasses

Les classes

Définition 2.2   Une classe factorise les caractéristiques communes des objets :
Classe = instanciation + attributs + opérations

La classe fournit un mécanisme d'instanciation (l'opération new), un objet est ainsi une instance d'une classe.

Les attributs d'une classe sont aussi appelés les variables d'instances.

Différents niveaux de visibilité pour les opérations : public et privé.

L'interface de la classe est constitué des opérations publiques. C'est le principe de l'encapsulation des attributs.

Remarque : les langages objets diffèrent quelque peu sur cet aspect.

La spécification d'une opération est sa signature : type des arguments d'entrée, type de l'objet receveur et type de l'argument de sortie.

Les objets sont accédés soit par un appel de procédure (langage compilé), soit par envoi de messages (langage interprété).

Exercice 2.2   Donnez les classes Employé et Site de l'exercice précédent.


\begin{pourrepondre}
\vspace*{10cm}
\end{pourrepondre}

Le graphe de généralisation

La relation de généralisation qui traduit la relation naturelle est-un est à la base de la hiérarchie des classes et de la relation d'héritage.

Définition 2.3   Généralisation : fonction qui, à une classe origine, dite sous-classe, fait correspondre une classe plus générale, dite super-classe.

La fonction inverse est appelée fonction de spécialisation.

Exercice 2.3   Ajouter les classes nécessaires pour avoir quatre catégories d'employés : des administratifs, des ingénieurs, des chercheurs et des stagiaires qui sont à la fois des chercheurs et des étudiants. Déssinez le graphe associé.


\begin{pourrepondre}
\vspace*{5cm}
\end{pourrepondre}

Le graphe d'instanciation

Définition 2.4   Instanciation : relation entre un objet et sa classe d'appartenance qui a permis de la créer.

Une des limites de la distinction entre objet et classe est l'impossibilité de créer des classes pendant l'exécution d'un programme.

Définition 2.5   Métaclasse : classe générateur de classes (ses instances), regroupant en particulier les opérations applicables aux classes et les structures de données communes à toutes les classes.

Remarque : la métaclasse est sa propre instance, et la classe object est la racine de la hiérarchie

Exercice 2.4   Ajoutez au graphe précédant les classes metaclasse et object


\begin{pourrepondre}
\vspace*{5cm}
\end{pourrepondre}

Le graphe d'association et d'agrégation

L'association est un concept issu du modèle entité-association, défini par Chen en 76 pour la modélisation sémantique des données.

Définition 2.6   Association : relation entre plusieurs classes, caractérisée par un verbe, décrivant conceptuellement les liens entre les objets de ces classes.

Une caractéristique importante d'une association est sa cardinalité : 1-1, 1-N ou N-M.

Parmi les associations, deux types particulier :

Binaire :
le verbe peut être utilisé dans les deux sens, le lien est donc bi-directionnel.
Partie-de :
utile pour modéliser les objets complexes qui sont composés d'autres objets.

Définition 2.7   Agrégation : relation entre deux classes spécifiant que des objets d'une classe sont les composants de l'autre classe.

Remarque : L'agrégation est transitive

Exercice 2.5   Dessinez un graphe d'association et d'agrégation entre Employé, Site et quatre nouvelles classes Batiment, Bureau, SalleRéunion et Parking.


\begin{pourrepondre}
\vspace*{5cm}
\end{pourrepondre}

Les collections

Lorsqu'un attribut est multivalué, sa valeur est une collection. Le langage peut fournir un constructeur de type pour les collections (une liste), mais il est préférable de fournir une classe.

Définition 2.8   Classe collection : classe générique (une classe paramétrée) permettant d'imposer une structure à une collection d'objets et de les manipuler par des opérations associées.

Exercice 2.6   Ajouter dans le graphe des classes, les classes Collection, Ensemble, Tableau, et Liste.


\begin{pourrepondre}
\vspace*{5cm}
\end{pourrepondre}


next up previous
suivant: L'héritage monter: Les concepts objets précédent: Les objets et les
Alain GRIFFAULT
2000-10-30