Niveau: 2ème Année GL
Enseignant:
Email:
Chapitre1: Introduction à la programmation orientée objet
Chapitre2: Notions de base Java
Chapitre3: Classes et Objets Java
Chapitre4: Héritage, Polymorphisme et Classes Abstraites
Chapitre5: Les Interfaces
Chapitre6: Les Exceptions
2
CHAPITRE1
3
PLAN DU CHAPITRE1
1. Définition de la Programmation orientée Objet (POO)
2. Objectifs de la POO
3. Concepts de base de la POO
4. Paradigmes de la POO: Encapsulation, abstraction, héritage et
polymorphisme
4
PLAN DU CHAPITRE1
1. Définition de la Programmation orientée Objet (POO)
2. Objectifs de la POO
3. Concepts de base de la POO
4. Paradigmes de la POO: Encapsulation, abstraction, héritage et
polymorphisme
5
Un paradigme de programmation qui consiste à la définition d’une collection
d'objets qui communiquent entre eux par envoi de messages.
Une approche naturelle de conception et de développement de logiciels.
Représenter les éléments du monde réel par des entités informatiques
dénommées « objets ».
6
Raisonnement Orienté Objet?
Programmation Orientée Objet Programmation Procédurale
La structuration des programmes Il y a une dissociation entre les
autour des données en association avec données et les fonctions: des
leurs traitements spécifiques difficultés lorsque l’on désire changer
les structures de données.
Objet
2 Données
Objet
1
Fonction 1
Objet
3 Fonction 2
Objet
4 Fonction 3
7
PLAN DU CHAPITRE1
1. Définition de la Programmation orientée Objet (POO)
2. Objectifs de la POO
3. Concepts de base de la POO
4. Paradigmes de la POO: Encapsulation, abstraction, héritage et
polymorphisme
8
1. Modélisation Simplifiée
2. Robustesse
1. Extension simple
2. Réutilisabilité
9
- Les POO sont adaptés à la conception de grosses
applications car ils offrent une modélisation plus naturelle
- Modélisation simplifiée vu que le monde réel n'est pas
représenté par des structures de données et des fonctions
isolées (cas de la programmation classique) mais par des
objets correspondants aux éléments traités du champ de
l'étude.
10
Exemple: Gestion d’une bibliothèque
1. Approche procédurale :
« Que doit faire mon programme? »
Figure: Gestion d’une bibliothèque tirée du web
11
Exemple: Gestion d’une bibliothèque
2. Approche Orientée Objet :
« De quoi doit être composé mon programme? »
12
Robustesse:
- Maintenance facile: Détecter et cibler les bugs est plus
facile dans un programme orienté objet avec la gestion des
exceptions
- Encapsulation: Le typage dans les classes offrent une
certaine robustesse aux applications
- Robustesse par rapport aux changements inattendus: on a
pas besoin de tout réécrire
13
Extension:
Un programme orienté objet est facilement extensible. Il
suffit d’ajouter les classes d’objets dans le programme et
d’établir les liens nécessaires entre les objets.
14
Exemple: Gestion d’une bibliothèque
Si on souhaite surveiller le compte bancaire des employés, on peut étendre
l’application par l’objet Compte et établir les connexions adéquates avec les
autres objets.
Compte
15
Réutilisabilté:
- Capacité de réutilisation totale ou partielle dans de
nouvelles applications
16
PLAN DU CHAPITRE1
1. Définition de la Programmation orientée Objet (POO)
2. Objectifs de la POO
3. Concepts de base de la POO
4. Paradigmes de la POO: Encapsulation, abstraction, héritage et
polymorphisme
17
1. Classe
2. Attributs et Méthodes
3. Objets
18
Une classe représente un modèle de construction d’objets.
Il s'agit d'une description abstraite en terme de données et de
comportements d'une famille d'objets.
Une classe d'objets est constituée d'une partie statique et d'une partie
dynamique
19
Une classe peut être vue comme le « plan de construction » d'objets
[https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/la-programmation-orientee-objet-6]
20
Des objets similaires peuvent être informatiquement modélisés par une même
abstraction: Une classe
Même structure de données et mêmes traitements
Valeurs différentes pour chaque objet
21
Une classe est constituée de deux parties:
Partie statique : LES ATTRIBUTS : Les attributs représentent la description des
données propres à chaque classe d'objets. Ceux-ci peuvent être des objets
d'autres classes ou des références sur d'autres objets. Pour qualifier les attributs
d'une classe, on raisonnera en termes de propriétés
Partie dynamique : LES METHODES : Les méthodes représentent l'ensemble des
actions, procédures, fonctions ou opérations que l'on peut associer à une classe.
L'ensemble des méthodes de la classe définit le "COMPORTEMENT "
22
Exemple:
CLASSE VOITURE
ATTRIBUTS METHODES
Marque Démarrer
Modèle Accélérer
Immatriculation Freiner
Vitesse Stopper
Niveau de carburant Vidanger
Puissance Etc ....
Etc ...
23
Une instance de classe est un élément construit selon le modèle de sa classe: On nomme cet
élément "OBJET".
Une classe est la définition d'un type.
Un objet est une déclaration de variable.
Après avoir crée une classe, on peut créer autant d'objets basés sur cette classe.
Le processus de création d'un objet à partir d'une classe est appelé instanciation d'un objet ou
création d'une occurrence d'une classe.
Les attributs (i.e. des variables) de la classe ont des valeurs.
Les méthodes de la classe fonctionnent sur l’objet.
24
Objet = Etat + Comportement + Identité
Un objet représente une entité du monde réel qui se caractérise par une identité,
des états et par un comportement
L’identité d’un objet permet distinguer les objets les uns par rapport aux autres
Son état correspond aux valeurs de tous les attributs à une instance donnée
Le comportement d’un objet se définit par l’ensemble des opérations qu’il peut
exécuter en réaction aux messages envoyés (Un message = demande d’exécution
d’une opération) par les autres objets
25
EXEMPLES D'INSTANCES
DE LA CLASSE VOITURE
CLASSE VOITURE
PEUJOT
ATTRIBUTS METHODES 3008
3412 Tunis 200
Marque Démarrer
Automatique
Modèle Accélérer 300 Km /h
Immatriculation Freiner Essence
Vitesse Stopper 5 CV, ...
Niveau de carburant Vidanger
CITROEN
Puissance Etc ....
C5
Etc ... 300 Tunis 149
Mécanique
300 Km /h
Diesel
8 CV, ...
26
Le seul mode de communication entre objets est l'envoi de messages.
Les messages : Un message est une requête. L'arrivée d'un message provoque l'exécution
d'une méthode d'un objet.
Chaque message précise la méthode à appliquer avec éventuellement des paramètres
Message AFFICHE(vide) OBJET Carré
ou
Message AFFICHE(plein) OBJET Carré
27
1. Définition de la Programmation orientée Objet (POO)
2. Objectifs de la POO
3. Concepts de base de la POO
4. Paradigmes de la POO: Encapsulation, abstraction, héritage et
polymorphisme
28
1. Abstraction
2. Encapsulation
3. Polymorphisme
4. Héritage
5. Composition, Agrégation
29
L’abstraction est le processus qui consiste à représenter des objets qui appartiennent
au monde réel dans le monde du programme que l’on écrit. Il consiste essentiellement
à extraire des variables pertinentes, attachées aux objets que l’on souhaite manipuler,
et à les placer dans un modèle informatique convenable.
Le processus d’abstraction consiste à identifier pour un ensemble d’éléments des
caractéristiques et des mécanismes communs à tous les éléments
Description génériques pour l’ensemble des éléments: Se focaliser sur l’essentiel et
cacher les détails
30
L’encapsulation est le faite qu’un objet renferme ses propres attributs et ses
méthodes: un objet est définie par ses attributs et ses méthodes.
Elle consiste à rendre les membres d'un objet plus ou moins visibles pour les
autres objets.
La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
non.
La visibilité dépend de l'observateur : les membres de l'objet encapsulé peuvent être
visibles pour certains objets mais pas pour d'autres.
L'encapsulation a pour objectif d'améliorer la robustesse et l'évolutivité des
programmes.
31
Exemple public
Message: Débiter (somme, compte, code confidentiel).
Objet: compte bancaire.
Méthode A: Débiter_carte_de_crédit
Visible depuis l'interface
Méthode B: Algorithme de validation du code confidentiel.
Non visible par l'utilisateur mais appelée par la méthode A private
32
L'héritage est un mécanisme destiné à exprimer les similitudes entre
classes.
Il met en œuvre les principes de généralisation et de spécialisation
en partageant explicitement les attributs et méthodes communs au
moyen d'une hiérarchie de classes
33
Une classe fille hérite de sa classe mère ses caractéristiques
(attributs et méthodes) mais elle se distingue par ses propres
caractéristiques.
Super Classe Dite aussi: Classe générale, Classe mère, Ancêtre, Classe de base
Sous Classe Dite aussi: Classe spécifique, Classe fille, Descendante, Classe dérivée
34
Exemple:
Figures planes
Polygones
Non polygones
convexes non convexes
Lignes ou Courbes
courbes non fermées
fermées
réguliers Non réguliers
35
On parle d’héritage simple lorsqu’une classe fille ne possède qu’une classe mère.
Voiture
Utilitaire
On parle d’héritage multiple lorsqu’une classe fille possède plusieurs classes mères.
Etudiant Enseignant
Enseignant chercheur
36
Le polymorphisme définit des exécutions différentes pour une méthode
commune à une hiérarchie d'objets.
Un code qui n'utiliserait pas le polymorphisme pourrait utiliser une instruction à
choix multiple suivant la classe des objets rencontrés.
OBJET
TRIANGLE
Message AFFICHE
OBJET
CERCLE
37
La composition consiste à réunir des objets pour en former un autre.
VOITURE
Composition
1 4 1 1
CARROSSERIE ROUES DIRECTION MOTE
U
R
Dans le cas d'une composition, on s'attachera à préciser le cardinal de cette relation.
38
C'est une relation particulière qui attribut à l'une des classes le rôle d'agrégat et à
l'autre classe le rôle d'agrégé. L'agrégation peut être assimilée à une appartenance
faible
- Une page peut contenir des images mais celles-ci peuvent appartenir à d'autres
pages.
- la destruction d'une page n'entraîne pas celle de l'image mais seulement la
suppression du lien.
39
Base de comparaison Agrégation Composition
En agrégation, il existe une
En composition, l’enfant ne
relation dans laquelle un
De base peut pas exister
enfant peut exister
indépendamment du parent.
indépendamment du parent.
Type de relation "a un" "partie de"
Type d'association Association faible Association forte
Représenté par un diamant Représenté par un diamant
Symbole de conception UML creux à côté de la classe plein à côté de la classe
d'assemblage. d'assemblage.
Si l'objet de classe
La suppression de propriétaire est supprimé,
Une fonction l'assemblage n'affecte pas cela peut affecter
ses pièces. considérablement l'objet de
classe contenant.
40
Merci pour votre attention !