Sie sind auf Seite 1von 39

Niveau: 2ème Année GL/RT

Enseignante: Sana HAMDI


Email: sana.hamdi@fst.utm.tn
sanahamdi.fst@gmail.com
Chapitre1: Introduction à la programmation orientée objet
Chapitre2: Langage Java : Introduction et caractéristiques
Chapitre3: Notions de base Java
Chapitre4: Classes et Objets Java
Chapitre5: Héritage, Polymorphisme et Classes Abstraites
Chapitre 6: Les Interfaces
Chapitre 7: 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
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 des 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éfini 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

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
Merci pour votre attention !

Dr. Sana Hamdi

Maitre Assistante en Informatique à l’INSAT

Membre du Laboratoire LIPAH (FST-Tunisie)


et du Laboratoire SAMOVAR (Telecom SudParis-France)