Présentation du cours
Programmation Orientée Objet
(CM: 20h; TD: 18h; TP: 12h)
Oumarou ABDOU ARBI
Université Dan Dicko Dankoulodo de Maradi
1
Chap1: Rappel sur les concepts de la POO
Différence entre programmation procédurale et la POO
La programmation procédurale
Inconvénient de la programmation procédurale
Les idées de la POO
Objet = méthodes + données
L’encapsulation des données
Classe
Héritage
2
Rappel sur les concepts de la POO
La programmation procédurale
Avec des langages tels que le C ou le Pascal, la résolution d’un
problème informatique passe généralement par l’analyse
descendante. On décompose ainsi un programme en un ensemble
de sous-programmes (procédures et fonctions) qui coopèrent pour
la résolution d’un problème.
Les procédures et fonctions sont généralement des outils qui produisent et/ou
modifient des structures de données.
Structure de données Structure de données
PProcédure
Fonction
(Algorithme) Sortie
Entrée
La programmation procédurale suit l’équation de Wirth : 3
ALGORITHMES + STRUCTURES DE DONNEES = PROGRAMME
Rappel sur les concepts de la POO
La programmation procédurale
Inconvénient de la programmation procédurale
L’évolution d’une application développée suivant ce modèle peut
être pénible: la moindre modification des structures de données
d’un programme conduit à la révision de toutes les
procédures/fonctions manipulant ces données.
Pour de très grosses applications, le simple fait de répertorier
toutes les fonctions manipulant une structure de données peut
déjà être problématique.
4
Rappel sur les concepts de la POO
Les idées de la POO
Objet = méthodes + données
L’approche objet consiste à mettre en relation directement les
structures de données avec les algorithmes qui les manipulent. Un
objet regroupe à la fois des données et des algorithmes de
traitement de ces données. Au sein d’un objet, les algorithmes sont
généralement appelés des méthodes.
Par analogie avec l’équation de Wirth, on peut dire que la POO suit l’équation
DONNEES
METHODES + DONNEES = OBJET
METHODES 5
Rappel sur les concepts de la POO
Les idées de la POO
Objet = méthodes + données
Avantage de la POO
On maîtrise plus facilement l’incidence d’une évolution de la
structure de données d’un objet. Les répercussions principales se
situent au niveau des méthodes de l’objet.
6
Rappel sur les concepts de la POO
Les idées de la POO
L’encapsulation des données
Au sein d’un objet, les données sont protégées. Celles-ci ne sont pas accessibles
directement depuis l’extérieur de l’objet. L’accès aux données d’un objet se fait
toujours via les méthodes de l’objet qui, de ce fait, jouent le rôle d’interface entre
les données (internes) et l’extérieur.
Les données de l’objet
ne sont accessibles
que par ses méthodes
DONNEES
METHODES
Les méthodes
servent
d’interface
7
Rappel sur les concepts de la POO
Les idées de la POO
La classe
La classe est un modèle pour générer des objets.
Une classe permet de spécifier, pour tous les objets faits à partir de cette classe,
comment les données sont structurées et quelles méthodes permettent de
manipuler ces données. Ensuite, la valeur des données peut évidemment différer
d’un objet à l’autre d’une même classe.
La notion de classe généralise ainsi la notion de type
la notion d’objet généralise celle de variable. On dira également qu’un objet est
une instance d’une classe ou, plus simplement, qu’un objet est une variable d’une
classe.
8
Rappel sur les concepts de la POO
Les idées de la POO
L’héritage
L’héritage correspond à la possibilité de créer une classe d’objets, dite classe
dérivée, à partir d’une classe existante dite classe de base.
Dans le processus d’héritage, la classe dérivée « hérite » des caractéristiques
(structures de données + méthodes) de la classe de base.
En plus de cet héritage, on peut ajouter dans la classe dérivée des données et
des fonctionnalités nouvelles.
L’héritage conduit ainsi à une spécialisation de la classe de base. Cette
caractéristique des langages objets améliore la réutilisabilité logicielle. En effet,
l’expérience montre qu’il est plus facile de réutiliser des classes que de réutiliser
des bibliothèques de fonctions 9
Rappel sur les concepts de la POO
Les idées de la POO
Le Polymorphisme
Généralement, en P.O.O, une classe dérivée peut "redéfinir" (c’est-à-dire
modifier) certaines des méthodes héritées de sa classe de base. Cette
possibilité est la clé de ce que l’on nomme le polymorphisme, c’est-à-dire la
possibilité de traiter de la même manière des objets de types différents, pour
peu qu’ils soient tous de classes dérivées de la même classe de base.
Plus précisément, on utilise chaque objet comme s’il était de cette classe de
base, mais le comportement effectif de la classe de base dépend de la classe
dérivée
Exemple:
supposons qu’on a une classeFigure qui contient une fonction-membre qui
permet de calculer la surface CalculSurface
Si ClasseTriangle, ClasseDisque, ClasseRectangle etc. hérite de classeFigure
alors elle doivent redefinir la fonction-membre CalculSurface puisque les
10
surfaces ne se calculent pas de la même manière.
La Programmation Orientée Objet (P.O.O)
Les apports de la P.O.O
Important à retenir :
La Programmation Orientée Objet est dirigée par trois principes
fondamentaux qu'il convient de toujours garder à l'esprit :
encapsulation, héritage et polymorphisme.
11