13/01/2018
Chapitre 0
INTRODUCTION À LA POO
© Imene Sghaier
ISET Nabeul
SEM2 & Mastère SEM1
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Objectifs spécifiques
Introduire les facteurs de naissance de la POO
Introduire la définition de la POO
Eléments de contenu
Historique
Exemple
Solution 1 : Programmation procédurale
classique
Solution 2 : Programmation orientée objet
Programmation orientée objet
Volume Horaire :
Cours : 1.5 heure
2
Imene Sghaier-Programmation Orientée Objet en Java
1
13/01/2018
HISTORIQUE
La programmation classique telle que étudiée au travers
des langages C, Pascal… définie un programme comme
étant un ensemble de données sur lesquelles agissent des
procédures et des fonctions.
Les données constituent la partie passive du programme.
Les procédures et les fonctions constituent la partie
active. Programmer dans ce cas revenait à :
Définir un certain nombre de variables (structures,
tableaux…)
Ecrire des procédures pour les manipuler sans associer
explicitement les unes aux autres.
Exécuter un programme se réduit alors à appeler ces
procédures dans un ordre décrit par le séquençage des
instructions et en leur fournissant les données
nécessaires à l’accomplissement de leurs tâches. 3
Imene Sghaier-Programmation Orientée Objet en Java
HISTORIQUE
Dans l’approche classique de programmation les
données et procédure sont traitées indépendamment
les unes des autres sans tenir compte des relations
étroites qui les unissent.
Les questions qu’on peut poser dans ce cas :
Cette séparation (données, procédures) est elle
utile ?
Pourquoi privilégier les procédures sur les
données (Que veut-on faire ?) ?
Pourquoi ne pas considérer que les programmes
sont avant tout des ensembles objets
informatiques caractérisé par les opérations qu’ils
connaissent ?
4
Imene Sghaier-Programmation Orientée Objet en Java
2
13/01/2018
EXEMPLE
Consigne : on veut faire un programme de
gestion du personnel d’une entreprise
informatique. On y trouve des ingénieurs, des
techniciens, des directeurs et des ouvriers
d’entretiens (concierge, femme de ménage…).
Imene Sghaier-Programmation Orientée Objet en Java
SOLUTION 1 : PROGRAMMATION PROCÉDURALE CLASSIQUE
=> Que veut on faire ?
Nom
Prenom
NumTel Données attributs du type
Liste-diplomes
Spécialité
salaire
Struct Ingenieur
void Lire_Ing()
Fonctions de manipulation
void Ecrire_Ing()
du type
double CalcSalaireIng()
Imene Sghaier-Programmation Orientée Objet en Java
3
13/01/2018
SOLUTION 1 : PROGRAMMATION PROCÉDURALE CLASSIQUE
Nom
Prenom
NumTel Données attributs du type
Spécialité
Salaire
Labo
Struct Technicienr
void Lire_Tech()
Fonctions de manipulation
void Ecrire_Tech()
du type
double CalcSalaireTech()
Imene Sghaier-Programmation Orientée Objet en Java
SOLUTION 1 : PROGRAMMATION PROCÉDURALE CLASSIQUE
Nom
Prenom
NumTel Données attributs du type
Spécialité
Salaire
Fax
Struct Technicienr Service
void Lire_Dir()
Fonctions de manipulation
void Ecrire_Dir()
du type
double CalcSalaireDir()
Imene Sghaier-Programmation Orientée Objet en Java
4
13/01/2018
SOLUTION 1 : PROGRAMMATION PROCÉDURALE CLASSIQUE
Soulignons le fait que
Les procédures ecrire_ing(), ecrire_dir() et ecrire_tech()
auront beaucoup d’instruction en commun pour
l’affichage des propriétés en communs (nom, prenom…)
Les procédures lire_ing(), lire_dir() et lire_tech() auront
beaucoup d’instruction en commun pour la lecture des
propriétés communes (nom, prenom…)
Ceci engendrera une perte de code, de temps et de
mémoire. Il vaut mieux changer de vision des choses!!
=> Pourquoi ne pas considérer que les programmes sont
avant tout des ensembles d’objets informatiques
caractérisés par les opérations qu’ils connaissent ?
Imene Sghaier-Programmation Orientée Objet en Java
SOLUTION 2 : PROGRAMMATION ORIENTÉE OBJET
=> De quoi parle-t-on ?
10
Imene Sghaier-Programmation Orientée Objet en Java
5
13/01/2018
PROGRAMMATION ORIENTÉE OBJET
La POO est une méthode d’implémentation dans
laquelle les programmes sont organisés sous formes de
collections coopératives d’objets, dont chacun
représente une instance d’une classe quelconque et
dont toutes les classes sont membres d’une hiérarchie
de classes unis à travers des relations d’héritage.
Dans l’approche orientée objet un algorithme sera
essentiellement vu comme un ensemble d’objets
auxquels l’utilisateur envoie des messages et qui s’en
envoient pendent le fonctionnement.
Ces objets seront toujours pour l’utilisateur des boites
noires et qui contiendront des variables locales,
inconnues de l’environnement, et qui ne s’y intéressera
d’ailleurs pas. Le seul moyen d’accéder à ces objets sera
l’envoie des messages qu’ils sont capables de
comprendre. 11
Imene Sghaier-Programmation Orientée Objet en Java