Vous êtes sur la page 1sur 21

23/09/2021

Direction Générale des études technologiques


*** * ***
Institut Supérieur des Etudes Technologiques de Sfax
*** * ***
Département Technologie de l’informatique

Cours Programmation Orientée


Objets
Niveau : DSI2
Enseignante : Manel BEN SALAH
Mail : manel.bensalah@yahoo.fr

Année universitaire: 2021-2022

Objectifs
• Comprendre les concepts de programmation orientée
objet (POO)

• Implémenter des classes d’objets

• Créer des classes avec le principe d’héritage

• Ecrire des programmes avec des objets de différentes


classes

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 2

1
23/09/2021

Plan du cours
➢ Les concepts de la programmation orienté objet

➢ Les concepts de base du langue java

➢ La notion de classes et objets

➢ Les Relation entre classes

➢ L’héritage et le polymorphisme

➢ Les classes abstraites et interfaces

➢ La gestion des exceptions


ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 3

CHAPITRE 1: LES CONCEPTS DE


LA PROGRAMMATION ORIENTÉ
OBJET
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 4

2
23/09/2021

Plan du chapitre
• Introduction à la POO
– Facteurs de naissance de la POO
– Exemple
• Présentation de la POO
– Rapide historique concernant la POO
– Avantages de l'Orienté Objet
– Exemple des langages Objets
– Exercice d’application
• Concept de base de la POO

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 5

INTRODUCTION À LA POO

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 6

3
23/09/2021

Facteurs de Naissance de la POO


Principe de La Prog. Procédurale
• Le programmeur s’intéresse en
priorité aux traitements que
son programme devra
effectuer.
• Les données constituent la
partie passive du programme.
Les procédures et les fonctions
constituent la partie active.
• Séparation : données /
traitement (procédures et
fonctions)

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 7

Facteurs de Naissance de la POO

Les données n’ont pas de


propriétaire
Les fonctions sont
globales

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 8

4
23/09/2021

Facteurs de Naissance de la POO


Problème Besoin

Peut devenir complexe très


rapidement Besoin d’un langage plus
La maintenance et l'ajout de
modulaire et plus facile à
nouvelles fonctionnalités sont
fastidieux
maintenir.
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 9

Exemple: Gestion d’une bibliothèque


▪ Approche procédurale :
• "Que doit faire mon programme ?"

Exemple: Gestion d'une bibliothèque

POO

Le Monde Amel BA
Sarra KAmel
Directrice Lectrice

Java pour les nuls Salah ali


Chokri Z,
Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

5
23/09/2021

Exemple
▪ Approche procédurale :
Gérer les emprunts
• « Que doit faire mon programme ? » de livres

Exemple: Gestion d'une bibliothèque

POO

Le Monde Amel BA
Sarra KAmel
Directrice Lectrice

Java pour les nuls Salah ali


Chokri Z,
Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

Notion d’Objet
▪ Approche procédurale :
• "Que doit faire mon programme ?"
▪ Approche orientée-objet :
• "De quoi doit être composé mon programme ?"
▪ Cette composition est conséquence d'un choix de modélisation fait
pendant la conception

POO

Le Monde Amel BA
Sarra KAmel
Directrice Lectrice

Java pour les nuls Salah Ben ali


Chokri Z,
Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

6
23/09/2021

Notion de Classes
▪ Des objets similaires peuvent être informatiquement décrits par une
même abstraction : une classe
➢ même structure de données et méthodes de traitement
➢ valeurs différentes pour chaque objet

Classe Livre Classe Lecteur


Classe Employé
Classe Journal

POO

Le Monde Amel BA Sarra Kamel


Directrice
Lectrice

Java pour les nuls Salah Ben Ali


Chokri Z. Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

Prog. procédurale VS POO

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 14

7
23/09/2021

Les Classes

Classe Lecteur
Classe Livre Classe Employé -nom, prénom
-titre, auteur Classe Journal -nom, prénom, statut
-nom, date

POO

Le Monde Amel BA
Sarra Kamel
Directrice Lectrice

Chokri Z. Salah Ben Ali


Java pour les nuls
Bibliothécaire Lecteur

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

Les Classes

Classe Lecteur
Classe Livre Classe Employé -nom, prénom
-titre, auteur Classe Journal -nom, prénom, statut
-titre

-Nom=Dupont
Titre = POO - prénom = Alice
Auteur: ABD -Statut = directrice
Le Monde Amel BA Sarra Kamel
Directrice Lectrice
Titre = Java pour les nuls
Salah Ben Ali
Auteur: XAZ Chokri Z. Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

8
23/09/2021

Les Classes
Classe Lecteur
Classe Livre -nom, prénom
-titre, auteur + ListeDeLivres livresEmpruntés()
+Date emprunter(Lecteur)
Classe Employé
Classe Journal -nom, prénom, statut
-titre

POO
Amel BA
Le Monde Directrice Sarra KAmel
Lectrice
Salah Ben Ali
Chokri Z. Lecteur
Java pour les nuls Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

Les Classes
Classe Lecteur
Classe Livre -nom, prénom
-titre, auteur + ListeDeLivres livresEmpruntés()
+Date emprunter(Lecteur)
Classe Employé
Classe Journal -nom, prénom, statut
-titre Classe ListeDeLivres
Classe Date
+ getLivre(numéro)
-jour, mois, ...
+ nombres()
POO

Le Monde Amel BA Sarra Kamel


Directrice Lectrice

Java pour les nuls Salah Ben Ali


Chokir K, Lecteur
Bibliothécaire

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

9
23/09/2021

Contenu d'une classe


Une classe est composée de plusieurs membres dont chacun est soit :
➢ un attribut : variable typée
➢ une méthode (ou opération) : ensemble d'instructions de
traitement
class CompteBancaire {
String proprietaire;
Attributs double solde;

double getSolde() {
return solde;
}
Méthodes
void credite(double
val) { solde =
solde + val;
}
}
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet

PRÉSENTATION DE LA POO

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 20

10
23/09/2021

Programmation Orientée Objet


• La POO repose sur le concept d’objet qui est
une association de données et de procédures
(ou méthodes) agissant sur ces données :
Méthodes + Données = Objet
• Un programme est alors constitué d’un
ensemble d’objets communiquant par des
requêtes (ou messages).

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 21

Programmation orientée objet


▪ La POO permet une modélisation plus naturelle
des systèmes considérés et propose un ensemble
de concepts indépendants de tout langage de
programmation facilitant le représentations des
objets:
o du monde réel (personne, voiture, ...).
o d’un domaine particulier (vecteur, matrice, complexe, ...)
▪ Modèle = vue abstraite du problème
o passage du monde réel au monde informatique
o retenir les propriétés essentielles: données + opérations

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 22

11
23/09/2021

Rapide historique concernant la POO


➢ La POO a une « longue » histoire
– POO?: Programmation Orientée Objet
– Début en Norvège à la fin des années 60
– Simula, programmation des simulations par événements discret
– Programmation structurée pas adaptée
➢ Dans les 70
– Développement par Xérox du premier système Fenêtres, Icônes
et Souris
– SmallTalk, « archétype » des langages objets
– Développement par Apple des premiers Mac

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 23

Rapide historique concernant la POO


➢ Au cours des années 80
– Développement des ordinateurs personnels
– Intérêt pour les interfaces graphiques
– Apparition de nouveaux langages
• Eiffel, fortement typé, entièrement OO
• C++, extension de C, pas totalement OO
• Object Pascal (Delphi) développé par Borland
➢ Dans les années 90, vers une maturité des
concepts objets
• Standardisation de C++
• Apparition de langages comme Java ou Phython
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 24

12
23/09/2021

Exemple des langages Objets

◼ Langages objets
◼ Simula

◼ Smalltalk
◼ C++
◼ Pascal : Pascal Objet, Delphi (Borland)
◼ Basic : VBA (Microsoft)
◼ Java
◼ C# (Microsoft)
◼ Python (script)

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 25

Avantages de l'Orienté Objet


➢ Facilité d'organisation

➢ Réutilisation

➢ Méthode plus intuitive

➢ Possibilité d'héritage

➢ Facilité de correction

➢ Projets plus faciles à gérer.

➢ L'OO est facilement concevable


➢ il décrit des entités comme il en existe dans le monde réel.
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 26

13
23/09/2021

Exercice d’application
• Exercice
o Une nouvelle agence de voyage souhaite disposer d’un logiciel
qui lui permet d’effectuer l’affectation des équipages aux
différents vols. Aidez le programmeur à identifier les classes
nécessaires pour élaborer ce logiciel.

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 27

CONCEPT DE BASE DE LA POO

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 28

14
23/09/2021

Les grands principes de la POO


• Un des objectifs principaux de la notion d’objet:
Organiser des programmes complexes grâce aux
notions :
– Encapsulation
– Abstraction
– Héritage
– Polymorphisme

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 29

Notion d’abstraction
▪ Le processus d’abstraction consiste à identifier
pour un ensemble d’éléments :
▪ des caractéristiques communes à tous les éléments
▪ des mécanismes communs à tous les éléments

description générique de l’ensemble


considéré : se focaliser sur l’essentiel, cacher les
détails.

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 30

15
23/09/2021

Notion d’abstraction : exemple


Exemple : Rectangles
• La notion d’«objet rectangle » n’est intéressante
que si l’on peut lui associer des propriétés et/ou
mécanismes généraux
– Propriétés et mécanismes valables pour l’ensemble des rectangles
et non pas pour un rectangle particulier
• Les notions de largeur et hauteur sont des
propriétés générales des rectangles (attributs),
• Le mécanisme permettant de calculer la surface
d’un rectangle (surface = largeur×hauteur) est
commun à tous les rectangles (méthodes)

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 31

Abstraction: Notions de classe


➢ L’abstraction donne naissance à la notion de classe.

➢ Une classe est une abstraction d’objets de même type.


➢ C’est un modèle décrivant le contenu (attributs) et le
comportement (Méthode) des futures objets de la classe.

➢ Un objet est une instance d’une et une seule classe


– Exemple: Ali ou Salah sont des instances de la classe Personne,
c'est-à-dire des Personne ayant des propriétés spécifiques
( Ali est une Personne à l'âge 20 et Salah une personne à l'âge
18 ).
ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 32

16
23/09/2021

Notions d’encapsulation

void sasieTaille(int *x)


0<x<100 {
do
{
Données Fonction Demande de
int x; d’écriture modification x scanf("%d",x);

}while(x=<0||x>=100);
}

main()
{
Il faut protéger les données int taille;
taille=-7;

33

Notions d’encapsulation (2)

Il faut protéger les fleurs Priver l’accès à tout le monde

Donner l’accès à un ensemble


particulier.

34

17
23/09/2021

Notions d’encapsulation (3)


➢ Il Consiste à regrouper dans le même objet
informatique («concept»), les données et les
traitements qui lui sont spécifiques:
➢ attributs: ce sont les données incluses dans un objet
➢ méthodes: ce sont les fonctions/traitements définies dans un
objet

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 35

Abstraction et Encapsulation
• Un intérêt de l’encapsulation est:
– permet d’abstraire (regroupement des données et
des traitements relatifs à une entité)
• Les objets donnent l’accès seulement aux
méthodes de leur classe.
– Ils protègent leurs attributs
• Cela vous permet d’avoir un contrôle sur tous
les accès.
– Accès à la partie publique seulement.
• Garder tous les détails de l’implémentation
privés, y compris certaines méthodes.

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 36

18
23/09/2021

Notion d’Héritage
• Besoin :
– Eviter de dupliquer du code
(attributs et méthodes) dans
différentes classes qui
partagent des
caractéristiques communes. Est un Est un
• Solution: L’héritage
– Les descendants (Livre, CD)
héritent les caractéristiques
(attributs+méthodes) de leur
ancêtre (Document).
– les descendants peuvent
développer leurs propres
champs et méthodes.
37

Notion d’Héritage (2)


• L’héritage est le mécanisme qui permet de
créer de nouvelles classes à partir d’une (ou
plusieurs) classe (s) de base

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 38

19
23/09/2021

Notion de Polymorphisme
• Le polymorphisme traite la
capacité de l'objet à posséder Animal
plusieurs formes. +nom
+poids
+taille
• Un objet garde toujours la
capacité de pouvoir redéfinir +parler()
+seNourrir()
une méthode héritée. +seDeplacer()

• Le polymorphisme est la
capacité du système à choisir la
méthode qui correspond au
type réel de l'objet en cours.

• C’est Utilisation du même code pour plusieurs types


39

Le classement des langages de programmation les


plus populaires - TIOBE Index for Juillet 2021
https://www.tiobe.com/tiobe-index/

ISETSF 2020-2021 DSI2 --- Programmation Orientée Objet 40

20
23/09/2021

Questions

21

Vous aimerez peut-être aussi