Académique Documents
Professionnel Documents
Culture Documents
Objets
Chapitre 1
Concepts de la POO
Plan
Introduction
Programmation Structurée
Principes
Critiques et limitations
fonction 1
Dissociation entre données et
traitement fonction 2
Exemple
C3 = C1*C2
Solution 1
Fonction 5( )
------- Fonction 3( )
------ -------
------
Fonction 4( )
-------
------
2011-2012 LST INFO, FSTF 13
Programmation structurée
(critiques et limitations)
Conception "plat de spaghettis" des
fonctions
Lisibilité faible
Manque de réutilisabilité
Programmation Orientée
Objet
Fonction1 Fonction2
Fonction 5 Fonction 3
Données
Fonction 4
Fonction1 Fonction2
Fonction1 Fonction2
Fonction
Fonction Fonction
5 Fonction
Données 3 5
Données 3
Fonction
Fonction
4
4
Fonction1 Fonction2
Fonction
Fonction
5
Données 3
Conséquences
Un objet n’est vu que par ses spécifications
Une modification interne n’influence pas le fonctionnement
général du programme
Encapsulation/Abstraction
Interface
Méthodes Données
( champs)
Apports de la POO
Plus de sécurité
Protection des données de l’objet
Interaction avec l’objet est définie par une interface
Apports de la POO
Meilleure lisibilité: Les données et méthodes
sont spécifiées au même endroit
Meilleure conception
2011-2012 LST INFO, FSTF 25
Programmation Orientée Objets
POO
Concepts de la POO
Classe et Objets
Message et méthodes
Héritage (simple, multiple)
Polymorphisme
Agrégation
Analogie
Méthodes
Méthode1( )
Méthode2( )
Objet de la classe A
O1
Méthodes
Créer_compte( )
Afficher_solde( )
Retirer( )
Déposer( )
Fermer_compte()
Compte 2
Compte 1
Instances
2011-2012 LST INFO, FSTF 33
Programmation orientée objets
POO
Concepts: Méthodes et envoi de message
Le comportement des objets est décrit au niveau
de leur classe par un ensemble de méthodes
Afficher( )
Affiche toi Classe
O1
La classe A est dite la super-classe ou la B
classe de base
An
2011-2012 LST INFO, FSTF 39
Programmation Orientée Objets
POO
Concepts de la POO: Héritage Simple
Exemple d’hiérarchie
Personne
Employé Etudiant
Etudiant_ Etudiant_non
Ingénieur Technicien boursié _boursié
2011-2012 LST INFO, FSTF 40
Programmation Orientée Objets
POO
Concepts de la POO: Héritage Simple
A éviter
Hiérarchies trop lourdes
– il ne faut pas en abuser !!!
Héritage de construction
– La classe voiture ne doit pas hériter de la classe roue
Incohérences conceptuelles
– Les attributs ou les méthodes de la classe de base ne
sont pas compatibles avec la classe dérivée
2011-2012 LST INFO, FSTF 41
Programmation Orientée Objets
POO
Concepts de la POO : Classes Abstraites
Une classe abstraite est une classe où certaines
méthodes ne sont pas implémentées
Méthodes
Abstraite Méthode1( )
Objet de la classe A Méthode2( )
O1
2011-2012 LST INFO, FSTF 42
Programmation Orientée Objets
POO
Concepts de la POO: Classes Abstraites
Intérêt: définir un cadre de travail pour les classes
dérivées
Forme
Exemple --------
Abstraite dessiner( )
--------
Employé Etudiant
Etudiant_salarié
Employé Etudiant
Un membre (attribut ou
méthode) est hérité
Etudiant_salarié
plusieurs fois par une
classe dérivée
!!! -------
nom
nom
2011-2012 LST INFO, FSTF
------- 47
Programmation Orientée Objets
POO
Concepts de la POO: Héritage Multiple
Résolution de conflits
Revoir la conception
Etudiant_salarié
-------
nom (Employé)
2011-2012 -------
LST INFO, FSTF 50
Programmation Orientée Objets
POO
Concepts de la POO: Héritage Multiple
Résolution de conflits (3)
Etudiant_salarié
-------
code (Employé)
code (Etudiant)
2011-2012 -------
LST INFO, FSTF 52
Programmation Orientée Objets
POO
Concepts de la POO: Polymorphisme
Le polymorphisme est la capacité d’une entité à
prendre plusieurs formes
L’entité polymorphe prend la forme adéquate au
cours de l’exécution
- Débrayer
Feu Voiture - Passer la première
- Accélérer
- Embrayer
Démarrage
des véhicules
Pédaler
Changement (vert )
Vélo
Programmation Orientée Objets
POO
Concepts de la POO: Polymorphisme
Trois types de polymorphisme
Polymorphisme paramétrique :
– Définir la même fonction avec des paramètres
de type différents
Polymorphisme ad hoc : Surcharge
– Définir la même fonction dans des classes sans
rapport
Polymorphisme de l’héritage: Redéfinition
– Spécialiser des méthodes de la super-classe pour les
classes dérivées
Classification
Tout LOO doit satisfaire 3 concepts de base et peut
implémenter d’autres concepts complémentaires.
Concepts de base
Classe et instances
Message et méthodes
Héritage simple
Concepts complémentaires
Héritage multiple
Polymorphisme
Agrégation
Historique
Simula (1967)
Smalltalk (1972)
C++ (1983)
Eiffel
Java (1995)