![]()
![]()
![]()
![]()
![]()
Next: Structures de données et Up: Programmation orientée objet : Previous: Outils d'analyse   Contents   Index
Exemple Cet exemple montre comment modéliser des figures géométriques destinées à être affichées. Ici, nous nous préoccuperons seulement des caractéristiques des figures, sans tenir compte des contraintes imposées par l'affichage proprement dit.
Nous proposons le graphe de classe en figure 12.5.
Ce graphe montre les relations entre les classes de l'application. Les classes FIGURE et COULEUR sont des classes ancêtres dans la mesure ou aucune autre classe n'en hérite.
Les classes RECTANGLE et CERCLE héritent de la classe FIGURE. Elles en possèdent donc les attributs et les opérations.
Il en va de même pour la classe CARRE qui hérite de RECTANGLE. Elle possède aussi les attributs de la classe RECTANGLE et de la classe FIGURE.
Les classes FIGURE et COULEUR sont en relation dont la multiplicité est 2 : cela signifie qu'à toute instance de la classe FIGURE (ou d'une de ses filles) correspond exactement deux instances de la classe COULEUR.
Il reste maintenant à définir les classes une par une.
La classe FIGURE est définie comme dans la figure 12.6.
Toutes les classes qui vont hériter de cette classe possèderont les attributs
Couleur_traitetCouleur_fond.L'opération dessiner est une fonction qui affichera par exemple un point d'interrogation pour indiquer qu'une figure, sans autre précision, ne sait pas se dessiner.
La première figure est le RECTANGLE dont la class est définie dans la figure 12.7.
La classe RECTANGLE possède deux attributs que sont la largeur et la hauteur. Elle redéfinit aussi l'opération dessiner pour l'adapter aux contraintes spécifiques du dessin d'un rectangle. On dit qu'elle surcharge l'opération dessiner.
Définissions maintenant la classe CARRE, comme en figure 12.8.
La classe CARRE hérite de la classe RECTANGLE. Elle en possède donc les attributs et les opérations. Mais elle ajoute une contrainte sur la largeur et la hauteur qui doivent être identiques. L'opération dessiner définie pour la classe RECTANGLE sera réutilisée telle quelle pour la classe CARRE, sans qu'il y ait besoin de la surcharger.
Il en va de même pour les classes ELLIPSE et CERCLE.
La méthode OMT permet d'aller beaucoup plus loin dans la modélisation de l'application. Cependant, ces bases suffiront dans les prochains chapitres.
![]()
![]()
![]()
![]()
![]()
Next: Structures de données et Up: Programmation orientée objet : Previous: Outils d'analyse   Contents   Index © 1993 to 2001 Erian Concept