Introduction à la Programmation Orientée Objet (POO)

Page 1 sur 12Lecteur de document UniversityLib

Introduction à la Programmation Orientée Objet (POO)

Computer Science · notes

Browse all programmation documents

Chapitre 1 : Introduction la POO

Introduction la

Programmation Orient e Objet

Objectifs sp cifiques :

Pr senter les volutions qui ont men s lav nement de la POO

Exposer lint r t de lapproche objet

Introduire les concepts objets

El ments de contenu :

Evolution de la programmation

Int r t de lapproche objet

Le mod le Objet

Les concepts objets

Volume horaire : 1h30

Page | 1

Chapitre 1 : Introduction la POO

1. Introduction

Depuis plusieurs ann es, le mat riel est de moins en moins cher, et de plus en plus puissant. Des

logiciels de plus en plus complexes doivent tre r alis s dans des d lais de plus en plus courts,

tout en maintenant le meilleur niveau de qualit possible.

Comment faire pour r pondre ces exigences contradictoires ?

R ponse : calquer les techniques de d veloppement du mat riel.

En ce qui concerne le mat riel, la solution a t de sous-traiter : Acqu rir des composants

(alimentation, carte m re, disque dur..) d j prouv (d j test et dont la fiabilit est assur e)

aupr s de vendeurs r put s et se charger uniquement de lassemblage des machines.

Les constructeurs achetaient des composants pr conditionn es cest- -dire des entit s ayant

des propri t s (poids, taille,&), une fonction particuli re et fournissant un ensemble de

services travers des interfaces d finies.

Si nous voulons reproduire le m me sch ma au niveau logiciel, il faudra donc mettre laccent

sur les points suivants :

Modulariser : d composer un probl me en un ensemble dentit s autonomes

permettant ainsi de faciliter la r utilisation et de limiter (et localiser) les modifications

lors des volutions.

Encapsuler : Faire abstraction du m canisme interne des composants afin de nen

pr senter que les services dont a besoin lutilisateur (linterface).

Mod liser :

La POO sappuie sur la m me id e.

D composer un programme en un ensemble dentit s (les objets) qui interagissent afin de

r aliser une ou plusieurs t ches. Chaque objet poss de certaines propri t s et peut accomplir

certaine op rations.

Page | 2

2. Evolution de la programmation

Chapitre 1 : Introduction la POO

1950s

1960s

1980s

1990s

20??s

Paradigme

Assembleur Proc dural

Orient Objet

Componentiel Orient

Agent

Entit

Donn es

Types abstrait

Objet

Composant

Agent

Contr le

Appel de

fonction

Envoie de

message

M thodes

Interaction

Call-back

Advertisement

Composition

modules

Hi rarchies

Frameworks Groupes

Programmation par branchement Goto : (Assembleur)

Un simple test sur les valeurs des donn es :

o

Interruption de l'ex cution du jeu d'instructions,

o Branchement vers une autre partie du programme.

Inconv nient :

Si nous sommes en pr sence dune grosse application, le programme r aliser sera alors

gros et complexe

Lisibilit , maintenance et r utilisation du code ne sont pas favoris es.

Programmation Proc durale structur e PPS : C, Pascal

La question qui se pose : Que doit faire le programme ?

Programmation bas e sur les traitements : Commencer par identifier lensemble des

fonctions permettant de r soudre le probl me. Puis, d duire partir des fonctions la

mani re de stocker les donn es.

Algorithme + structure de donn es = Programme

D composition d'une t che en termes de sous-programmes.

o Analyse du probl me de mani re descendante ("Top-Down").

S parer les donn es des traitements Subdivision bas e sur les traitements.

Page | 3

Chapitre 1 : Introduction la POO

Avantages : meilleur lisibilit

Inconv nients :

La sp cialisation des fonctions ne favorise pas leur r utilisation.

Ressemble peu notre mani re de penser :

Vue algorithmique d'un programme donc tr s pr s du langage de la machine

Le programmeur doit faire un effort cognitif pour interpr ter ce qu'il veut

mod liser pour tre "compris" par la machine

Peu intuitif lors de l'analyse d'un code existant

Tend g n rer du code "Spaghetti"

La maintenance et l'ajout de nouvelles fonctionnalit s demandent de modifier ou

d'ins rer des s quences dans ce qui existe d j

Peu devenir complexe tr s rapidement

Abstraction absente (ou presque)

Programmation Objet : C++, Java

La question qui se pose : De quoi se compose mon programme ?

Programmation bas e sur les donn es : Le programmeur commence dabord par

identifier les objets manipul s par le programme. Et cest seulement apr s quil associe

un traitement chacun des objets.

Un programme = une soci t d'entit s

Son ex cution : les entit s collaborent pour r soudre le probl me final en s'envoyant des

messages.

une entit = un objet qui prend en compte sa propre gestion (objet responsable)

Liaison in vitable entre donn es et proc dures op rant sur ces donn es.

Avantages

Faciliter le d veloppement en mode boite noire

Maximiser la localit des changements

Programmation modulaire : Permettre la r utilisation de code

Tr s proche de notre mani re de penser : Lid e de base de lApproche Orient e Objet

(A.O.O.) repose sur l'OBSERVATION de la fa on dont nous proc dons dans notre vie de

tous les jours.

Page | 4

Chapitre 1 : Introduction la POO

3. Les concepts fondamentaux de la POO

Les concepts objets se traduisent par les notions suivantes :

Objet / Classe

Encapsulation

Abstraction

H ritage

Polymorphisme

Ces concepts ont un impact direct sur :

La qualit du syst me

Le co t de d veloppement et de maintenance

Advertisement

Le d lai de d veloppement et de maintenance

3.1.

Lobjet

D finition

Un objet en POO est une entit informatique utilis e pour mod liser informatiquement

des "objets" de la vie courante ou des concepts.

o Exemples dobjets concrets : ville, v hicule, tudiant, un bouton sur l cran.

o Exemples dobjets conceptuels : date, r union, planning de r servation.

Un objet poss de :

o Une identit unique (permet de distinguer un objet dun autre)

o Un tat interne donn par des valeurs de variables (ou attributs)

Attributs d crivent l tat de lobjet un instant donn

o Un comportement (capacit s daction de lobjet) donn par des fonctions ou

sous-programmes, appel s m thodes (ou op rations).

Ces m thodes d finissent le comportement de lobjet (ce quil peut faire,

comment il peut le faire&) et ses r actions aux stimulations externes.

Exemple : Lobjet Montre

Une montre peut tre caract ris e par :

les attributs : Heure, Minutes, Secondes

Page | 5

Chapitre 1 : Introduction la POO

Les m thodes : setHeure(int h), setMinute(int m), setSeconde(int s), int getHeure(), int

getMinute(), int getSeconde(), void R glerAlarme()

Interaction entre objet

Les objets interagissent et communiquent entre eux par lenvoi de messages

Les m thodes publiques dun objet correspondent aux messages que lon peut lui

envoyer

Les messages sont caract ris s par

o objet cible du message

o nom de la m thode d clencher

o param tres de cette m thode

La r ponse la r ception dun message consiste ex cuter la m thode associ e

Figure 1.1 : Repr sentation de linteraction entre objets

3.2.

La classe

D finition

Une classe est la description des caract ristiques communes tous les objets.

Classe = sch ma/moule/mod le dobjets

Une classe est un mod le de d finition pour des objets

o ayant m me structure (m me ensemble d'attributs),

o ayant m me comportement (m mes op rations, m thodes),

o ayant une s mantique commune.

Page | 6

Chapitre 1 : Introduction la POO

Notation UML

Nom Classe

// d claration des attributs

//d claration des m thodes

Montre

  • Heure : int ;
  • Minutes :int ;
  • Secondes : int ;

+setHeure(int h)

+setMinute(int m)

+setSeconde(int s)

+getHeure() : int

+getMinute() : int

+getSeconde() : int

Linstanciation

Les objets (instances) sont cr s (instanci s) partir de "moules" : les classes.

Figure 1.2 : Classe Moule

Classe = g n rateur dobjets par instanciation, on peut fabriquer des objets ob issant ce

sch ma/moule/mod le.

Exemple

Montre

  • Heure : int ;
  • Minutes :int ;
  • Secondes : int ;

Advertisement

+setHeure(int h)

+setMinute(int m)

+setSeconde(int s)

+getHeure() : int

+getMinute() : int

+getSeconde() : int

M3 : Montre

  • Heure : 18 ;
  • Minutes :30 ;
  • Secondes : 30 ;

Instance

M1 : Montre

  • Heure : 9 ;
  • Minutes :15 ;
  • Secondes : 35 ;

M2 : Montre

  • Heure : 10 ;
  • Minutes :45 ;
  • Secondes : 15 ;

Figure 1.2 : Exemple dinstanciation de la classe Montre

Page | 7

Chapitre 1 : Introduction la POO

3.3.

Labstraction

Cest un processus qui consiste montrer uniquement les caract ristiques utiles dun

objet, du point de vue de lobservateur et cacher les d tails superflus.

Exemple :

Prenons lexemple dune montre qui doit indiquer lheure. Lutilisateur na besoin de connaitre

que les diff rents l ments (afficheur et boutons) qui lui permettrons de consulter lheure, de la

modifier, de r gler une alarme&Il na nullement besoin de savoir comment cette montre est

mont e, ni quel m canisme permet de la faire fonctionner.

Abstraction de la montre

Encapsulation

Figure 1.4 : Exemple dabstraction/encapsulation dune montre

3.4.

Lencapsulation

D finition

Il y a deux facettes lencapsulation :

` Cest le fait de regrouper au sein dune m me entit (lobjet), les donn es (attributs)

et les traitements (m thodes).

Objet = donn es (attributs) + traitements (M thodes)

Traitements (m thodes)

Donn es (attributs)

Etat de lobjet

Comportement de lobjet

Un objet

a Cest galement un processus qui permet lisolement et la dissimulation des d tails

dimpl mentation.

Page | 8

Chapitre 1 : Introduction la POO

Lencapsulation permet de d finir deux niveaux de perception :

o Le niveau externe : Interface de lobjet : partie (visible) par les utilisateurs de

lobjet :

  • prototype des m thodes et attributs accessibles hors de lobjet.

o Le niveau interne : d tails dimpl mentation de lobjet

  • m thodes et attributs accessibles uniquement depuis lint rieur de

lobjet .

Interface de lobjet

Etat +impl mentation

(cach s)

Comportement (public)

Lobjet

Lacc s aux donn es ( tat) de lobjet ne peut tre fait quau travers des

m thodes.

Les donn es sont priv es (cach es)

Les m thodes publiques d finissent linterface de de lobjet.

Exemple : Montre

setHeure(int h) setMinute (int m) setSeconde(int s)

int heure

int minutes

int secondes

Advertisement

Lencapsulation de lobjet Montre

Niveau de visibilit

L'encapsulation permet de d finir des niveaux de visibilit des l ments de la classe. Il existe

trois niveaux de visibilit :

Page | 9

Chapitre 1 : Introduction la POO

Publique: les fonctions de toutes les classes peuvent acc der aux donn es ou aux

m thodes d'une classe d finie avec le niveau de visibilit public. Il s'agit du plus bas

niveau de protection des donn es.

Prot g : l'acc s aux donn es est r serv aux fonctions des classes h riti res, c'est- -

dire par les fonctions membres de la classe ainsi que des classes d riv es.

Priv : l'acc s aux donn es est limit aux m thodes de la classe elle-m me. Il s'agit du

niveau de protection des donn es le plus lev .

Int r t de lencapsulation

Lint r t de regrouper les traitements et les donn es est :

de permettre une meilleure visibilit et une meilleure coh rence au programme.

doffrir une plus grande modularit .

Lint r t de s parer les niveaux interne et externe est

de facilite l volution dune application : on peut modifier limpl mentation des attributs

dun objet sans modifier son interface, et donc la fa on dont lobjet est utilis .

de garantir lint grit des donn es, car elle permet dinterdire, ou de restreindre, lacc s

direct aux attributs des objets.

3.5.

LH ritage

Il permet de cr er une nouvelle classe partir d'une classe d j existante.

Le nom "H ritage" indique le fait que la classe fille (la classe nouvellement cr e)

contient les attributs et les m thodes de sa classe m re (la classe dont elle d rive). En

effet, les attributs et les m thodes de la classe m re (appel e aussi superclasse) sont

h rit s par la classe fille (appel e aussi classe d riv e). Toutefois, de nouveaux attributs

et m thodes peuvent tre ajout s.

On parle dh ritage simple lorsquune classe fille ne poss de quune classe m re.

On parle dh ritage multiple lorsquune classe fille poss de plusieurs classes m res.

Page | 10

Chapitre 1 : Introduction la POO

H ritage simple

H ritage multiple

Figure 1.5 : Exemple dh ritage simple / multiple

C++ permet lh ritage multiple, JAVA ne le permet pas

3.6.

Le Polymorphisme

D finition

Le nom de polymorphisme vient du grec et signifie qui peut prendre plusieurs

formes .

Alors que l'h ritage concerne les classes (et leur hi rarchie), le polymorphisme est

relatif aux m thodes des objets.

Le polymorphisme repr sente la facult dune m thode pouvoir sappliquer des

objets de classes diff rentes.

Le polymorphisme est un m canisme qui permet une sous classe de red finir une

m thode dont elle a h rit tout en gardant la m me signature de la m thode.

Exemples

Dans une soci t , le calcul du salaire dun administratif se fait selon une formule fixe alors que

celui dun commercial d pend dune commission sur la quantit vendu. On peut utiliser la m me

m thode calcul_salaire pour ces deux classes diff rentes et avoir un comportement diff rent

selon lobjet de la classe qui a appel la m thode.

Page | 11

Chapitre 1 : Introduction la POO

Figure 1.6 : Exemple repr sentant le polymorphisme

Int r t du polymorphisme

Le polymorphisme augmente la g n ricit , et donc la qualit du code.

Page | 12