You are on page 1of 9
Les concepts orientés objet iL Introduction L'approche objet considere le logiciel comme une collection dobjets dissociés, et identi- figs, définis par des propriétés. Une propriété est soit un attribut (une donnée), caractéri- sant Vétat de objet, soit une méthode (une opération que objet est a méme de réaliser) qui caractérise son comportement. Ces méthodes permettent de faire réagir l'objet aux sol- licitations extérieures ou d’agir sur les autres objets. Les concepts spécifiques a approche orientée objet (Objet, Classe, Encapsulation, Héritage et polymorphisme) participent a la qualité du logiciel. IL Notion d’Objet Un objet est une entité cohérente rassemblant des données (aitributs) et du code (mée- thodes) travaillant sur ses données. Un objet est un concept, une abstraction, une chose qui a des limites tras claires et un sens précis dans le contexte du projet A modéliser. Un objet doit avoir une signification dans le systéme et étre en relation avec d’autres objets. Exemples ¥ Un objet personne : le client « El Alami M. » ¥ un objet concret : le livre intitulé « Initiation a la programmation » ¥ un objet abstrait : le compte bancaire n? 1915233C IL. Attributs Tous les objets d'un méme type possédent donc des les mémes attributs mais chaque objet posséde une valeur pour ces attributs, valeurs qui ne sont pas forcement les mémes pour tous les objets. Exemple : Tous les GSM possédent une marque, un numéro de modéle, une couleur, etc, mais on n'a pas tous un GSM avec les mémes valeurs pour ces attributs. On définit /état d'un objet comme étant la valeur de ses attributs 4 un moment don- né. La figure suivante illustre ce concept d'attributs, on peut voir plusieurs objets du méme type (tous des GSM) avec leur état LAMMARI Page 1/9 Figure n° : Attributs d’un objet Commentaires : Sur l'exemple de la figure n°1, vous voyez done : V. Trois objets de type GSM avec la valeur des attributs marque, numéro de mo- dble ot couleur. ¥ Chacun de ces trois objets a son propre état, c'est-A-dire une valeur pour ces trois attributs. ¥ On voit par exemple que le premier et le troisiéme objet ont la méme valeur pour lattribut couleur, sinon, les autres valeurs sont toutes différentes, Ce quiil faut bien retenir, clest que chague objet est une entité a part et possede son propre état, 11.2. Méthodes Les différentes fonetionnalités d'un objet permettent de définir son comportement, Tous les objets d'un méme type possédent les mémes tonctionnalités, En effet, tous les GSM sont capables effectuer un appel, de recevoir un appel, denvoyer un SMS, ete. 11.3. Liaison entre attributs (Etat) et méthodes (Comportement) Les fonctionnalités et état sont liés, en effet, lorsque vous utilisez une fonctionnalité, vous le faites sur un objet précis, eet objet ayant un état précis. Exemple : Un GSM posséde un certain niveau de charge de la batterie et il pourrait y avoir une fonctionnalité qui affiche le niveau des batteries. Pour que cette fonction puisse fone ionner, elle doit connaitre le niveau de charge de la batterie qui est un attribut du GSM. LAMMARI Page 2/9 La fone Jeur de lattribut niveau de charge de la batterie, nnalité « afficher le niveau de charge de la batterie » va done iliser la va- En Conclusion Avec ¥ Etat : les valeurs instantanées de tous les attributs d’un objet sachant qu'un attri- but est une information qui qualifie l'objet qui le contient. Y Comportement : Les méthodes d’un objet. VY Identité : La référence de Vobjet en mémoire. Ill. Notion de Classe Une classe est une abstraction qui décrit un ensemble potentiellement infini d’objets individuels caractérisés par des propriétés (attributs et méthodes) communes. Une classe est un modéle a partir duquel on va pouvoir construire des objets. On dit qu’un Un objet est une instance de la classe. La classe définit les attributs que possédent tous les objets, et on y retrouve également des définitions de méthodes qui représentent les différentes fonctionnalités des objets de cette classe. Exemple n°1 Figure n°2 : La classe GSM et ses objets (instances) Commentaire : Un GSM posséde un écran, une batterie, un clavier, une antenne, etc. Toutes ces caracté- ristiques sont reprises dans un plan. Ensuite, @ partir du plan, on peut construire un GSM, certain auront un grand écran, d'autre un plus petit, certain une antenne visible, dlautres une cachée. Depuis un méme modéle, on peut créer différents objets. LAMMARI Page 3/9 Exemple n°2 GSM Marque Modéle Couleur envoyerSMS Se irAppel eam toe Orange-Blanc consulterBatterie Figure n°3 : La classe GSM et ses objets (instances) Commentaire : ¥ I faut done bien distinguer plusieurs choses : la classe, l'objet ef la variable de type objet. ¥ Les trois éléments sont illustrés sur la figure n°3. On voit : + laclasse GSM totalement a gauche. Celle-ci définit des attributs et les méthodes. + A partir d'une classe, on peut créer un objet qui est montré tout a fait droite. Liobjet posséde des valeurs particuliéres pour les attributs, ces valeurs consti- tuent l'état de objet. + Enfin, pour manipuler lobjet, on a une variable de type objet, montrée au mic lieu, qui contient une référence vers lobjet. Exemple n°3 : v Dans un systéme de Gestion de stock on définit les classes : Client, Commande, Ar- ticle, Dépot, ete. ¥ Dans la gestion scolaire on défi les classes : Etudiant, Module, Filiére, ete. IV. L’encapsulation L’encapsulation est le mécanisme de regrouper les attributs et les méthodes au sein de la dlasse, en cachant l'implémentation. Les services offerts aux utilisateurs définissent ce que Yon appelle Vinterface de la classe. L’encapsulation permet : ¥ d’empécher d’aceéder directement aux données par un autre moyen que les ser- vices proposés (les méthodes), ¥ de garantir l'intégrité des données contenues dans lobjet, LAMMARI Page 4/9 + Partie statique, passive + Partie cachée, privée + Partie dynamique, comportementale artie visible, publique Interface avec I’extérieur User ‘Figure n°4: Principe d’encapsulation Vv. Lhéritage L'héritage est un mécanisme de transmission des propriétés d'une classe (ses attri- buts et méthodes) vers une sous-classe. La relation de parenté qui existe entre les diffé- rentes classes est représentée sous forme de hiérarchie de dasses qui : ¥ Commence par une classe générale appelée superclasse (classe de base, classe parent, classe ancétre, classe mere ou classe pére). VY Puis les classes dérivées (classe fille ou sous-classe) deviennent de plus en plus spécialisées. Sous-classe igure n°S : Représentation graphique de I'hi Lintérét majeur de I'héritage est de pouvoir définir de nouveaux attributs et de nou- velles méthodes pour la classe dérivée, afin d’éviter la duplication et favoriser la réutilisa- tion du code. LAMMARI Page 5/9 Exemple GSM "de fase” + Bluetooth + Appareil shoto + Lecteur demoreintes Figure n°6 : €xernple d’héritage pour la classe GSM Commentaire Si on reprend 'exemple des GSM, on aurait un plan pour un GSM de base, et ensuite toute une série d'autres appareils, chacun ayant l'une ou Mautre fonctionnalité en plus, par exemple la communication Bluetooth, un appareil photo intégré, un lecteur d'empreintes digitales, etc. VA. Types d’héritage L’héritage peut étre sous deux formes : Y Lihéritage simple qui permet a une ou plusieurs sous classes d’hériter d’une seule super classe, Exemple d’‘héritage simple : Personne fznom eprenom [nacre |adateaisance Etudiant ‘Chémeur Employé Retraité Henumére a fanumere lerumsre oursier landerma lasalave pension ldaméoUniverstae] —[adateechéanceDrois} [fancionnetd Figure n°7 : Héritage simple LAMMARI Page 6/9 Commentaire : Y Toutes les sous classes (Etudiant, Chomeur, Employé et Retraité) héritent d’une seule super classe Personne. Y La hiérarchie des personnes décrit totalement les différents statuts possibles d’une personne. ¥ Il introduit une hiérarchie, sur les personnes, relative a leur statut, mais il peut exister d'autres critéres de hiérarchie sur les personnes (par exemple, par rapport a leur statut matrimonial, leurs compétences professionnelles, ou encore une classifi- cation homme, femme, garcon, fille, etc.) Y Lhéritage multiple qui autorise & une sous classe d’avoir plusieurs super classes. Figure n°8 : Représentation de I’héritage multiple Exemple d’héritage multiple : PoweredDevice Copier Figure n°9 : Héritage multiple relatif a une classe « photocopieuse » V.2. Heritage (généralisation /spécialisation) Y Plusieurs classes peuvent étre généralisées en une classe qui les factorise, afin de re- grouper les caractéristiques communes d'un ensemble de classes. ¥ Une classe peut étre spécialisée en d'autres classes, afin dy ajouter des caractéristiques spécifiques ou d'en adapter certaines. Y La spécialisation et la généralisation permettent de construire des hiérarchies de classes. L'héritage peut étre simple ou multiple. LAMMARI Page 7/9 spieintoaton auteur \ retin hire ‘Opera / 7 gomconivanion [ Roman e0 Figure n°10 : Différentes vues de I’héritage VI. Polymorphisme Le nom de polymorphisme vient du grec et signifie qui peut prendre plusieurs formes. I représente la faculté d'une méthode a pouvoir s'appliquer & des objets de classes diffé- rentes. Il est possible de définir plusieurs méthodes de méme nom mais possédant des pa- ramitres différents (en nombre et/ou en type), si bien que la bonne fonction sera choisie en fonction de ses paramétres lors de Vappel. Le polymorphisme augmente la généricité du code. Remarque Lihéritage concerne les classes (et leur hiérarchie) alors que le polymorphisme est relatif aux méthodes des objets. Exempk Sur un téléphone portable, on peut soit taper un numéro de téléphone complet, et on appuie sur option appel (appel a la méthode « appeler »), le téléphone va composer le numéro, ou on peut sélectionner le nom du destinataire puis on appuie sur appel (dans ce cas ily aura une recherche du numéro dans le répertoire téléphonique correspondant au non sélectionné). Done, la réaction de la méthode « appeler », est différente (bien que simi- laire) selon le paramétre qui lui est donné. VL1. Types de polymorphisme On distingue généralement les types de polymorphismes suivants : Y Le polymorphisme de surcharge (ou « ad hoc » ou « overloading » en anglais) : cela consiste & avoir la méme méthode avec la méme signature pour des objets de type analogue, voire complétement différents. LAMMARI Page 8/9 Exempk Si mon téléphone est de marque «X », posséde une méthode « appeler » et un micro pour parler. Un interphone d'immeuble posséde aussi la méthode « appeler » et un micro. On se préoccupe pas du type d'objet dont on se sert, il nous suffit d'utiliser la méthode «appeler » et d'utiliser le micro pour parler. ¥ Le polymorphisme d'héritage (ou « overriding » en anglais). Ce poly morphisme est issu, comme son nom T'indique de I'héritage. Cela consiste a faire hériter plusieurs classes dune méme classe «mere», et de redéfinir une méthode pour chaque classe. Exemple n°L Les téléphones de différentes marques n'ont pas la méme structure interne. Un téléphone de la marque « X » va par exemple afficher un petit logo quand on utilise « appeler », tan- dis qu'un autre va allumer I'écran, Chaque constructeur a donc créé sa propre classe « Mo- bileX » ou « MobileY » héritée de la classe « Mobile », puis réécris par dessus la méthode «appeler » pour y intégrer ses propres spécificités. Exemple n°2 Z cley Ye Figure n°11 : Polymorhisme d’héritage avec la hiérarchie relative & la classe Véhicule (redéfinition de la méthode seDéplacer de la super clasee Véhicule par les sous classes Train, Voiture et Bateau) Exemple n°3: Panygone. Couleur racer Rectangle Triangle Tongueur i Largour 2 Tracer a Tracer Figure n°12 : Polymorhisme d'héritage avec la hiérarchie relative 2 la classe Ploygone (redéfinition dela méthode Tracer par les sous classes Rectangle et Triangle) LAMMARI Page 9/9

You might also like