Vous êtes sur la page 1sur 43

Programmation oriente objet

Paradigmes
Notions
Constats
Il y a beaucoup de manires
crire un programme qui effectue une
tche spcifie.
La manire de programmation
dpende du langage utilis.
Le langage utilis dpende de la
manire de programmation.
Paradigmes de programmation

programmation procdurale : P.P.


(Pascal, C, etc.)
programmation oriente objet : P.O.O. (C+
+, Java, Delphi)
etc.
Programmation procdurale
(rappel de C)
le programme est compos des fonctions
les donnes (variables) sont cres
lintrieure des fonction ou bien passes
comme paramtres
il y a un programme principal (main)
Un programme en C
Limitations
Il ny a pas de mthode ou de cadre pour bien
organiser les fonctions.
Les modifications dune fonction entranent
dautres modifications dans autre fonctions,
etc. la porte dune modification est trop
grand et difficile grer.
Redondance dans le code (la mme chose est
cod plusieurs fois)
Propagation des erreurs dboggage difficile
Est-ce quil faut oublier le C?

NON!
Vous allez avoir le
choix parmi
plusieurs
mthodes de
programmation!
Paradigme orient objet
Comment peut on y arriver?
Introduction des nouvelles (?) notions
objet (objektum)
classe (osztly)
instanciation (pldnyosods)
hirarchie des classes (osztlyhierarchia)
hritage (rklds)
vnement (esemny)
On va utiliser ces notions pour introduire le
paradigme de programmation oriente objet.
Objet (exemple / fentre)
proprits dune fentre
ouverte/ferme
casse/intacte
taille
sens douverture
type de verre
coefficient de rflexion de chaleur
Pour une fentre concrte, ces proprits
ont des valeurs.
Objet (exemple / fentre)
oprations avec une fentre donne
ouvrir
fermer
casser
rparer
changer la verre
Objet (exemple / livre)
proprits dun livre dans une bibliothque
tat (emprunt / disponible / perdu)
date de la fin de lemprunt
titre
auteur
nombre de pages
Pour un livre donn, ces proprits ont
des valeurs!
Objet (exemple / livre)
oprations sur un livre dune bibliothque
emprunter
rendre
perdre
voler
Objet (dfinition)
Un objet est un ensemble des
proprits ayant des valeurs et des
actions (oprations ou mthodes)
agissant sur les valeurs de ces
proprits.
Remarque: cest la tche qui nous dira quelles sont les
proprits et les mthodes quon doit prendre en compte
dans le programme.
Objet (exercice)

Proprits intressantes?
Actions intressantes?
(pour une comptition, pour une entreprise
qui loue des voitures, etc)
Classes
La classification des choses se fait par
abstraction.
Il faut trouver les caractristiques
communes des lments de la classe. En
effet, ces sont ses caractristiques qui
dfinissent une classe.
Classe des objets
Les objets ayant des mmes proprits et les
mmes mthodes peuvent tre mis dans une
classe.

Une classe sera dfinie par les proprits


et les mthodes sur ses lments.
Classe des livres
proprits mthodes
tat (emprunt / emprunter
disponible / rendre
perdu) perdre
date de la fin de voler
lemprunt
titre
auteur
nombre de pages
Classe des fentres
proprits mthodes
tat douverture ouvrir
(ouverte/ferme) fermer
tat (casse/intacte) casser
taille rparer
sens douverture changer la verre
type de verre
coef de rflexion de
chaleur
Classe
Une classe est un ensemble des proprits
et des mthodes.
Dans le programme

proprits variables

mthodes procdures (code)

ENCAPSULATION
Une classe dans un programme
une classe est une collection de donnes et
des mthodes sur ces donnes.
Une classe est une encapsulation des
donnes et du code.
La notion de lencapsulation est la cration
des classes
donne une organisation naturelle des fonctions
(mthodes)
permet deffectuer la modification locale du
code
Exemple dans un langage de
programmation (JAVA)
public class Cercle;
{
double Rayon;
public double calculerAire()
{
return Rayon * Rayon * 3.1415;
}
}
Instanciation (pldnyosods)

Un objet est une instanciation dune classe


Les proprits (i.e. des variables) de la
classe ont des valeurs.
Les mthodes de la classe fonctionnent sur
l objet.
Une instance de la classe livre
proprits mthodes
tat = emprunt emprunter
date de la fin de lemprunt rendre
= 2003/03/20 perdre
titre = Concepts of object- voler
oriented programming
auteur = David N. Smith
nombre de pages = 189
Comment crer un objet?
Dans chaque classe, il y a une mthode
spciale:
La mthode constructeur
Cette mthode permet de crer un nouveau
objet de la classe en dfinissant les valeurs
des proprits et en donnant accs aux
mthodes sur cette objet.
Une instance de la classe livre
proprits mthodes
tat = emprunt emprunter
date de la fin de lemprunt rendre
= 2003/03/20 perdre
titre = Concepts of object- voler
oriented programming livre
auteur = David N. Smith
nombre de pages = 189 mthode
constructeur
Exemple dans un langage de
programmation (JAVA)
public class Cercle;
{
double Rayon;
public double calculerAire()
{
return Rayon * Rayon * 3.1415;
}
Cercle(double r) // constructeur
{
Rayon = r;
}
}
Objet comme valeur dune
proprit

Un objet peut tre la valeur dune


proprit
Exemple
On dfinit la classe des roues
Ensuite, on dfinie la classe des voitures
Pour une voiture donne, on a quatre roues
qui sont de la classe des roues.
Exemple dans un langage de
programmation
public class Dessin
{
Cercle Composant1;
double surfaceDessin;
}
Exemple (objet comme valeur
dune proprit)
Classe auteur
proprits mthodes
nom (String) obtenir prix
prnom (String) auteur
tat (mort/vivant)
prix (liste)
Exemple (objet comme valeur
dune proprit)
Classe livre
proprits mthodes
tat (emprunt / disponible emprunter
/ perdu) rendre
date de la fin de lemprunt perdre
titre voler
auteur livre
nombre de pages La valeur est une instanciation
de la classe auteur
Hirarchie des classes
Example : vhicle
classification
des espces
(Darwin) voiture camion moto

La hirarchie
va des classes 4x4 utilitaire
gnrales vers
les classes
spcifiques
Hirarchie des classes

voiture classe mre

utilitaire classe drive


Hritage (rklds)
la classe drive possde
TOUTES LES PROPRIETES DE SA CLASSE
MERE
TOUTES LES METHODES DE LA CLASSE
MERE
Hritage des proprits
(exemple)
voiture
fabriquant
chauffeur

Utilitaire Proprits
hrites
fabriquant, chauffeur
cargaison
quantit
Hritage des mthodes (exemple)
voiture
dmarrer
arrter

Utilitaire Mthodes hrites


dmarrer, arrter
charger
dcharger
Exemple dans un langage de
programmation
public class CercleUnitaire extends Cercle
{
CercleUnitaire()
{
Rayon=1;
}
}
Hirarchie des classes
Exercice : donnez une classification
hirarchique de quelques lments de dessins
(ligne, triangle, carr, losange cercle, etc.)
Exercice : donnez une classification
hirarchique dune base de donnes des livres
dans une bibliothque
Exercice : donnez une classification
hirarchique de ce que vous voulez.
Un programme orient objet
modlisation du domaine laide des
classes
dfinition des classes
cration des instances (peut tre
dynamique)
messages entre les objets (appel des
mthodes)
Interface vers lutilisateur
Linterface vers lutilisateur est une
collection des objets (boutons, champs de
texte, menu droulant, etc.)
Lutilisateur dispose des actions sur les
lments de linterface (slectionner,
cliquer, double cliquer, etc.)
Une action correspond un vnement qui
dclenche lexcution dune mthode.
Un programme orient objet
O b je t
O b je t
donnes
donnes
code
code

O b je t
donnes
code

O b je t O b je t
donnes donnes

code code
Les langage de programmations
orients objets
On a prsent les concepts de base de POO.
Certains langages de programmation
permettent de mettre en uvre ces concepts
quand on crit un programme.
Les syntaxes de ces langages peuvent tre
diffrentes.
Le POO est un paradigme et nest pas un
langage.