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/9Figure 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/9La 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/9Exemple 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/9Exemple
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/9Commentaire :
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/9spieintoaton
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/9Exempk
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