Académique Documents
Professionnel Documents
Culture Documents
ENSI - II1
Chapitre 3 : Concepts de Base de la P.O.O. A.U. : 2012/2013
CHAPITRE 3
CONCEPTS DE BASE DE LA
PROGRAMMATION ORIENTÉE OBJET
Plan
2
Introduction
Objet
Classe
Encapsulation
Héritage
Polymorphisme
Introduction
3
Programmation structurée
Introduction
4
Objet
5
Objet
6
X : Point CB : CompteBancaire
abscisse : 25 titulaire : "John Doe"
ordonnée : 34 solde : 1290
Identité
initialiser() débiter()
déplacer() Attributs créditer()
afficherSolde()
Méthodes
R : Rectangle V1 : Voiture
largeur : 30 marque : "Renault"
hauteur : 12 couleur : "bleue"
vitesse : 50
périmètre()
surface() X, R, CB et V1 sont des accélérer()
diagonale() objets. freiner()
afficher() tourner()
Classe
7
Chaque objet est issu d’une classe, on dit qu’un objet est une
instance d’une classe.
Classe
8
Point CompteBancaire
abscisse : réel titulaire : chaîne
ordonnée : réel solde : réel
Classe
initialiser() déposer(réel) : réel
déplacer() Attributs retirer(réel) : réel
afficherSolde() : réel
Méthodes
Rectangle Voiture
largeur : entier marque : chaîne
hauteur : entier couleur : chaîne
vitesse : entier
périmètre() : entier
Point, Rectangle, Voiture et
superficie() : entier accélérer(entier)
CompteBancaire sont des freiner()
modifier() : réel
afficher() classes d’objets. tourner(entier)
Classe
9
r1 r2
instanciation
instanciation
largeur : 30 largeur : 30
hauteur : 12 hauteur : 12
périmètre() périmètre()
superficie() superficie()
Rectangle
modifier() instanciation modifier()
afficher() largeur : entier afficher()
hauteur : entier
r périmètre() : entier r1, r2 et r sont des objets
largeur : 65 superficie() : entier issus de la classe Rectangle.
hauteur : 42 modifier() : réel
afficher() r1 et r2 possèdent les
périmètre()
mêmes valeurs d’attributs,
superficie()
modifier() pourtant il s’agit bien
afficher() d’objets différents !
Classe
10
Constructeur / Destructeur
Classe
11
Accesseur / Mutateur
Exemple
12
Instanciation
CompteBancaire CompteBancaire CB1: CompteBancaire
("Dupont", 935)
titulaire : chaîne titulaire : "Dupont"
solde : réel solde : 935
CompteBancaire(réel) déposer()
CompteBancaire(chaîne, réel) retirer()
déposer(réel) : réel
retirer(réel) : réel
getSolde()
getSolde() : réel CB1.getSolde()
setSolde()
setSolde(réel) getTitulaire()
935
getTitulaire() : chaîne setTitulaire()
setTitulaire(chaîne)
Exemple
13
Instanciation
CompteBancaire CompteBancaire CB1: CompteBancaire
("Dupont", 935)
titulaire : chaîne titulaire : "Dupont"
solde : réel solde : 935 970 70
CompteBancaire(réel) déposer()
CompteBancaire(chaîne, réel) retirer()
débiter(réel) : réel
créditer(réel) : réel
getSolde()
getSolde() : réel CB1.déposer(35)
setSolde()
setSolde(réel) getTitulaire()
970
getTitulaire() : chaîne setTitulaire()
setTitulaire(chaîne)
Encapsulation
14
Encapsulation
15
Rectangle
Encapsulation
16
Objet
Encapsulation
17
Encapsulation
18
Encapsulation
19
Avantages
Héritage
20
Généralisation
2 types d’héritage :
Héritage simple : la classe fille ne peut avoir qu’une seule classe mère (Java).
Héritage multiple : la classe fille peut avoir plusieurs classes mères (C++).
Héritage
21
Un objet issu d’une classe fille peut accéder à tous les membres
(attributs et méthodes) publics et protégés (protected) d’un objet
issu de sa classe mère.
Héritage
22
Héritage
23
Avantages
Polymorphisme
24
Polymorphisme
25
Polymorphisme ad hoc
Polymorphisme
26
Polymorphisme paramétrique
Polymorphisme
27
Polymorphisme d’héritage