Académique Documents
Professionnel Documents
Culture Documents
(POO)
Support de cours
Programmation Orientée Objet
Université de Sousse
2021-2022
kkk Mahdi ABDELKAFI 2022-2021 Page 1 sur 39
Plan
3 Principes de la POO
4 Classe / Objet
5 Héritage / Encapsulation
Motivation
Limites
kkk Mahdi ABDELKAFI
Limites
2022-2021 Page 3 sur 39
Rappel
Motivation
Programmation procédurale
Motivation
Programmation procédurale
notions
De variables / type de données
Et de traitement de ces données
Étaient séparées :
Limites
kkk Mahdi ABDELKAFI
Limites
2022-2021 Page 5 sur 39
Rappel
Motivation
Programmation procédurale
des fonctions
Rappel
Motivation
Programmation procédurale
Programme calcule la
surface
Le rectangle est
caractérisé par une
largeur et une hauteur
Une fonction surface
qui se charge à réaliser
le calcule approprié
Limites
kkk Mahdi ABDELKAFI
Limites
2022-2021 Page 7 sur 39
Rappel
Motivation
Programmation procédurale
Limites
Motivation
Programmation procédurale
Limites
kkk Mahdi ABDELKAFI
Limites
2022-2021 Page 9 sur 39
Motivation
Motivation
Programmation Orientée Objet
Largeur
Hauteur
Surface
Motivation
Motivation
La POO fournit
de : robustesse, modularité, lisibilité
Lisibilité classe
et établissement des liens sémantiques entre les entités
Motivation
Programmation Orientée Objet
Motivation
1 Concept Objet
Concept Objet
Caractéristiques d un Objet
Un objet est caractérisé par :
Son identité
Ses données
Concept Objet
Exemple : Gestion de bibliothèque
If I have data, I will know
Un objet bibliothèque est caractérisé par :
Son identité
Ses données (pile de livres)
ajouterLivre
emprunterLivre
deux traitements:
Ajouter_Livre()
Emprunter_Livre()
Autres objets vont demander à
je peux emprunter un livre ? »
deux traitements:
Programmation Orientée Objet (POO) : Principes
Concept Objet
Communication
If I have data, I will know
Les objets communiquent entre eux par échange de messages
Le message le plus échangé est le demande de réalisation de
traitement
ajouterLivre
emprunterLivre
Concept Objet
ajouterLivre
emprunterLivre
Programmation Orientée Objet (POO) : Principes
Concept Objet
Synchrone par défaut
fdata, I will know
Les communications entre les objets sont principalement
synchrones
Concept Objet
Création d objet et référence
If I have data, I will know
Programmation Orientée Objet (POO) : Principes
Concept Objet
Échange de références
Les références sont des données
Il est possible de les transmettre via échange de message
Page 6 sur 39
Concept Objet
Suppression d objet
De´finition
Soit on peut supprimer les objets et alors il faut faire attention aux
références qui pointent vers des objets supprimés (C++)
Soit on ne peut pas supprimer les objets mais ceux-ci sont mis aux
oubliettes si aucun autre objet ne les référence (Java)
Page 7 sur 39
Programmation Orientée Objet (POO) : Principes
Application Objet
Ensemble d objets
Page 8 sur 39
Application Objet
Page 9 sur 39
Programmation Orientée Objet (POO) : Principes
Application Objet
Initialisation
De´finition
Page 10 sur 39
Conception Objet
Encapsulation
8 / 80
Programmation Orientée Objet (POO) : Principes
Conception Objet
Responsabilité
propose
8 / 80
Conception Objet
8 / 80
Programmation Orientée Objet (POO) : Principes
Cohésion
Enjeux de la science des donne´es
Préférer plusieurs petits objets à un gros
8 / 80
8 / 80
Programmation Orientée Objet (POO) : Principes
Challenge
Faire une application objet consiste à :
traitements)
Définir les données dont ils ont besoin (leurs données)
8 / 80
8 / 80
Programmation Orientée Objet (POO) : Principes
8 / 80
Première conception
Enjeu
x de
la
scien
ce
des
donn
e´es
8 / 80
Programmation Orientée Objet (POO) : Principes
8 / 80
Deuxième conception
Enjeux de la science des donne´es
8 / 80
Programmation Orientée Objet (POO) : Principes
objets
Ils sont crées par les invadres ou le vaisseau
9 / 80
Les
Conception finale
10 / 80
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Les tableaux
Syntaxe : déclaration (type [ ] nom ;)
Initialisation (nom = ;)
déclaration + initialisation (type [ ] nom = {val1, val2, ;)
Les collections s en C
Syntaxe : ArrayList <type> nom = new ArrayLyst<> () ;
nom.add(valeur) ;
Page 1 sur 34
Concepts de base
Page 2 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Définition
Une classe :
Les mêmes types de données (nom, type, valeurs par défaut)
Les mêmes traitements (nom, paramètres)
Page 3 sur 34
Concepts de base
Classe en JAVA
:
: Rectangle rec1 ;
nom_classe nom_instance ; déclare une référence
de type Rectangle
Page 4 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Classe en JAVA
Error
Compilation
Page 5 sur 34
Concepts de base
Les objets immuables
En JAVA les objets immuables se sont des objets qui, une fois ont été
crées, ne peuvent plus être modifiés.
Le caractère immuable est inventé pour des raisons de sécurité afin de
Page 6 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Classe en JAVA
Page 7 sur 34
Concepts de base
Les attributs et méthodes en JAVA
Page 8 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Abstraction
:
Des caractéristiques communes à tous les éléments
Des mécanismes communs à tous les éléments
Instanciation Abstraction
Page 9 sur 34
Concepts de base
Encapsulation
Regroupement dans une même et seule entité les variables membres
et les fonctions membres
lus
abstraite des données que je manipule
Deux niveaux de perception des objets :
Niveau externe : partie visible par les programmeurs-
utilisateurs
Interface : entête de quelques méthodes bien choisies
Niveau interne :
Corps : définitions de tous les méthodes et attributs
accessibles qui sont accessibles uniquement depuis
Page 10 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Encapsulation
Objet
Attributs Méthodes
Dans la plupart des cas :
Private : tous les
Interface Attributs et la plupart
(partie visible)
Des méthodes
Public : quelques
Méthodes bien
Détails Choisies (visibilité
Tout le programme)
(partie interne
cachée)
Par défaut partagé
(visibilité package)
Page 11 sur 34
Concepts de base
Accesseurs et manipulateurs
Page 12 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
« this »
Page 13 sur 34
Concepts de base
Héritage
Deux ou plusieurs classes partages plusieurs variables ou fonctions
Factoriser le code et éviter les redondances
Page 14 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Héritage
Représente la relation « est-un »
Permet de créer des classes spécialisées à partir de classes générales
Page 15 sur 34
Concepts de base
Héritage
interfaces. Cela
interfaces
Les classes héritent également des interfaces avec le mot clé
implements
Le cast, en java est la conversion de type, son rôle est de forcer le
compilateur à t
vrai
Page 16 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Héritage : classe abstraite
Une classe abstraite est une classe qui ne peut pas être instanciée.
Exemple de déclaration : abstract class A { }
Elle peut contenir des méthodes abstraites ou non et des attributs. Elle
Une classe qui possède une méthode abstraite est par défaut abstraite.
Page 17 sur 34
Concepts de base
Page 18 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Le Constructeur en Java
Page 19 sur 34
Concepts de base
Le Constructeur en Java
Page 20 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Le Constructeur de copie en Java
Syntaxe :
{ this.attribut de la ;
-----------------------------------
}
Page 21 sur 34
Concepts de base
Les interfaces
classe. Ex :
class Vheicule { ----- }
class Voiture extends Vheicule implements P
Page 22 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Les interfaces
Page 23 sur 34
Concepts de base
Les interfaces
On peut, dans une interface sans devoir utiliser le mot clé default,
déclarer une méthode private avec implémentation. Afin de pourvoir
utiliser cette méthode, il faut passer par une autre méthode déclarée
default.
Une méthode default ou private ne peut pas être redéfini dans une classe
Page 24 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Créer des objets immuables
La classe doit être déclarée final
classe générique héritable
Toutes les propriétés membres doivent être déclarées en private et
final
Les objets immuables ne supportent pas les mutateurs
tilisation des copies défensives (defensive copy) permet de
Page 25 sur 34
Concepts de base
Est une méthode de la classe Object { }, par défaut toutes les classe y
héritent
La méthode renvoie par défaut un string composé du nom de la classe de
Page 26 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Page 27 sur 34
Concepts de base
Classe Object : méthode Clone()
Page 28 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Clonage en profondeur
-à-dire les types primitifs seront copiés,
quant aux références eux seulement sont copiées et non pas les objets. Il
faut également les cloner.
Page 29 sur 34
Concepts de base
Destruction d un objet en Java
la ramasse-miettes
Page 30 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Attributs et méthodes de classe
attribut de classe
Page 31 sur 34
Concepts de base
Polymorphisme
:
redéfinissant dans une sous classe
Page 32 sur 34
Programmation Orientée Objet (POO) : JAVA
Concepts de base
Page 33 sur 34