SlideShare una empresa de Scribd logo
1 de 100
Descargar para leer sin conexión
Programmation Orientée Objet
POO
Prof. Hakim ALLALI
Licences EEA & RTT. Fév 2013
Plan
1
• Introduction
2
• Programmation orientée objet (POO)
3
• POO vs PPS (Prog. Procédurale Structurée)
4
• Avantages de la POO
5
• Notion d’objet
6
• Notion de classe
7
• Caractéristiques de la POO : Encapsulation
8
• Caractéristiques de la POO : Héritage
9
• Caractéristiques de la POO : Polymorphisme
2
Introduction
 La POO utilise une approche différente de celle des langages
procéduraux.
 Comment certaines sociétés de l’industrie informatique sont-
elles devenues si importantes et aussi vite ?
 Elles fabriquent en général de bonnes machines, vendues à
prix bas, dans une période où il existe une demande.
 Comment ont-elles pu construire tant de modèles aussi
rapidement, et comment ont-elles répondu aussi vite aux
changements que subit le marché de la micro-informatique ?
1
3
Introduction
 Essentiellement, parce qu’elles ont sous-traité une bonne
partie de leurs travaux. Elles ont acheté des éléments à
des vendeurs réputés et se sont chargées de
l’assemblage des machines.
(alimentations, disques durs, cartes mères, etc.)
 Production rapide et réduction des coûts.
Ces constructeurs achetaient des «fonctionnalités
préconditionnées». (elles acquéraient quelque chose qui
possédait certaines propriétés (taille, poids, etc.) et
une certaine fonctionnalité (une sortie stabilisée, une
puissance électrique, etc.)
4
Programmation orientée objet
 La POO s’appuie sur la même idée.
 Un programme est constitué d’objets qui interagissent
(communiquent) afin de réaliser une ou plusieurs tâches.
 Chaque objet possède certaines propriétés et peut accomplir
certaines opérations.
 C’est le temps et les fonctionnalités disponibles qui décideront
du fait que vous construisez un objet ou que vous utilisez un
autre disponible.
2
5
Programmation orientée objet2
 La POO propose une méthodologie de programmation
centrée sur les objets. Où un objet peut être vu
comme une entité regroupant un ensemble de données
et de méthodes de traitement.
 Le programmeur
 Doit d’abord identifier les objets qui doivent être
utilisés (ou manipulés) par le programme: on
commence par décider quels objets doivent être
inclus dans le programme.
 Va ensuite, écrire les traitements, en associant
chaque traitement à un objet donné.
6
Programmation orientée objet2
Il s'agit donc :
 de déterminer les objets présents dans le
programme.
 d'identifier leurs données.
 de définir les traitements à faire sur ses objets.
7
POO vs PPS (Prog. Procédurale Structurée)
 PPS : concevoir un ensemble de fonctions (et procédures)
permettant de résoudre un problème.
 Après avoir déterminé ces fonctions, trouver la manière
appropriée de stocker les données.
Algorithmes + Structures de données = Programme
 D’abord, vous décidez de la manière dont vous allez
manipuler les données; ensuite seulement, vous choisissez
le genre de structures que vous imposeriez aux données
afin de faciliter cette manipulation.
3
8
 La POO inverse cet ordre et place les données au premier plan
avant de déterminer l’algorithme qui sera employé pour opérer
sur ces données.
 En POO, chaque objet accomplit quelques tâches associées.
 Si un objet dépend d’une tâche qui n’est pas de sa responsabilité,
il doit avoir accès à un autre objet capable d’accomplir cette
tâche.
3
9
POO vs PPS (Prog. Procédurale Structurée)
POO vs PPS3
POO PPS
Principe : On sépare les
données des moyens de
traitement de ces
données.
Principe : afin d’établir de
façon stable et robuste
l’architecture d’un système, il
semble raisonnable de
s’organiser autour des données
manipulées.
10
 Approche procédurale :
Que doit faire mon programme ?
 Approche orientée objet :
De quoi doit être composé mon programme ?
Exemple: Gestion d'une bibliothèque
Cours Java
DELANNOY
Cours C++
RITCHIE
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
Gérer le stock
Gérer les emprunts
de livres
11
Programmation: diverses approches
12
 La construction d’un système va s’axer principalement sur la
détermination des données dans un premier temps et la
réalisation des traitements (de haut-niveau) agissant sur ces
données dans un second temps.
 Cette approche permet de bâtir des systèmes plus simples à
maintenir et à faire évoluer.
 On regroupe dans une même entité informatique, appelée objet,
les structures de données et les moyens de traitement de ces
données.
Avantages de la POO4
13
Avantages de la POO
 Programmation modulaire: Facilité de la réutilisation du code.
 Encapsulation (Principe de la POO) et abstraction
(proche du monde réel):
– Regrouper les caractéristiques dans une classe
– Cacher les membres d’une classe: choix dans les niveaux de
confidentialité
 Programmation par « composants » (chaque portion de code
est isolée): facilité de l’évolution du code.
4
14
Problématique de la Programmation
Le schéma simplifié d’un système informatique peut se résumer par
la formule :
Système informatique = Structures de données + Traitements
Le cycle de vie d’un système peut être décomposé en deux grandes
phases :
Une phase de production qui consiste à réaliser le logiciel.
Une phase de maintenance qui consiste à corriger et à faire
évoluer le logiciel.
Lors de la production du système (au sens industriel du terme), le
concepteur a deux grandes options :
soit orienter sa conception sur les traitements.
soit orienter sa conception sur les données.
15
16
Résolution d’une problématique
Depuis les années 80, la croissance de l'industrie du logiciel est très importante. Elle
atteint près de 15 % du PNB des Etats Unis, soit une dépense estimée à 300 Milliard $.
Un effort important est donc fait pour minimiser les dépenses de conception et de
maintenance du logiciel.
Selon une enquête réalisée par ACM sigsoft (Eng. NotesV10, No 5, Oct. 1985) sur 9 projets
du gouvernement américain:
S'orienter vers de nouvelles approches autres que celles
utilisées, à l'époque (1985), dans la conception et le
développement des applications
POO
Les grands principes de la POO
 Classe, Objet
 Encapsulation
 Héritage
 Polymorphisme
17
 Ces concepts ont un impact direct sur :
 La qualité du système
 Le coût de développement et de maintenance
 Le délai du développement et de maintenance
 Si ces concepts de base sont simples, leur utilisation nécessite de l’expérience
 Objet: Un objet est une entité cohérente rassemblant
des données (attributs ou propriétés) et du traitement
(méthodes, services) travaillant sur ses données.
 Une classe peut être considérée comme un moule à partir
duquel on peut créer des objets.
Notion d’objet5
18
 Approche procédurale :
Que doit faire mon programme ?
 Approche orientée objet :
De quoi doit être composé mon programme ?
Exemple: Gestion d'une bibliothèque
Cours Java
DELANNOY
Cours C++
RITCHIE
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
Gérer le stock
Gérer les emprunts
de livres
19
Exemple: un livre à la bibliothèque est caractérisé par:
- Un titre
- Un auteur
- Un numéro d’inventaire
- Un numéro de classement
Un objet de type Livre est constitué d’attributs qui caractérisent
la structure de cet objet:
Exemple d’attributs de l’objet livre
L'objet est manipulé par exemple par les méthodes suivantes:
– disponible : Méthode permettant de dire si le livre est disponible à la bibliothèque
– qteDisponible: Méthode permettant d’agir sur la quantité disponible
private String titre;
private String auteur
private int numInv;
private String numClas;
Static int Qte;
20
- Une quantité (le nombre de livres disponibles à la biblihothèque).
 Les structures de données définies dans l’objet
sont appelées ses attributs (propriétés).
 Les procédures et fonctions définies dans l’objet
sont appelées ses méthodes (opérations).
 Les attributs et méthodes d’un objet sont appelés
ses membres.
 L’ensemble des valeurs des attributs d’un objet à
un instant donné est appelé état interne.
Vocabulaire à retenir
21
Notion d’objet: 3 caractéristiques5
 Un objet est caractérisé par :
Son comportement : que pouvez-vous faire avec cet objet, ou
quelles méthodes pouvez-vous lui appliquer ?
Son état : Comment l’objet réagit-il lorsque vous appliquez ces
méthodes ? (son aspect actuel)
L’état d’un objet peut changer dans le temps, mais pas
spontanément. Une modification dans l’état d’un objet doit
être la conséquence d’appels de méthodes.
Son identité : Comment l’objet se distingue-t-il des autres qui
peuvent avoir le même comportement et le même état ?
22
1) son comportement
Quelles sont les méthodes
qu’on peut lui appliquer?
Exemples:
Un poisson peut-il marcher?
Un avion peut-il nager ?
Les comportements de l’objet "Télévision" :
allumer, changer de chaîne, changer de volume du son,
éteindre
Notion d’objet: 3 caractéristiques5
23
Exemple:
Comportement de l’objet
Il est caractérisé par des méthodes (appelées parfois fonctions
membres) qui permettent de modifier l’état de l’objet.
 Une méthode rattachée à l’objet permet de déclencher un
des comportements associés à l’objet.
 Il n’est pas possible d’agir directement sur les données d’un
objet pour modifier son état; il est nécessaire de passer par
ses méthodes. On dit qu'on « envoie un message » (fait une
requête) à un objet.
Un objet peut recevoir un message qui déclenche
– une méthode qui modifie son état
et / ou
– une méthode qui envoie un message à un autre objet
demarrer
maVoiture moteur
24
2) son état
Quel est la réaction de l’objet
lorsqu’on lui applique une méthode?
 Dans un Système d’information, chaque
commande est différenciée par une
référence unique.
 Elle va avoir un état : en cours
d’acheminement, envoyée , délivrée.
 Si une commande est expédiée, peut-on la
modifier? c’est-à-dire, ajouter un article.
Notion d’objet: 3 caractéristiques5
25
Les états de l’ objet "Télévision":
allumé/éteint, chaîne courante, volume de son
Etat de l’objet
Il est défini à l’aide d’attributs (Fields, appelés aussi données
membres).
Ce sont des variables associées à l’objet et qui stockent des
valeurs (des informations sur l'état de l'objet).
Exemple: L’état d’un objet de type Voiture est caractérisé par
les attributs : couleur et vitesse
L’état de l’objet maVoiture est caractérisé par les données
couleur = noire
vitesse = 80
Nom de l’objet (identifiant)
Description des attributs
maVoiture
- couleur = noire
- vitesse = 80
26
Notion d’objet: caractéristiques5
3) son identité
L'objet possède une identité, qui permet
de le distinguer des autres objets,
indépendamment de son état.
Chaque objet est unique.
Chaque objet a une identité.
27
Chaque objet est unique.
Même dans le cas de 2 jumeaux
Ils peuvent avoir le même prénom,
Le même nom, la même adresse.
La même date de naissance,
Le même lieu de naissance.
Chacun aura une empreinte digitale
différente.
Identité de l’objet
28
Notion de class
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 Journal
Classe Employé
Classe Lecteur
Cours Java
DELANNOY
Cours C++
RITCHIE
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
6
29
Notion de class
30
Classe Livre
-titre, auteur Classe Journal
-titre
Classe Employé
-nom, prénom, statut
Classe Lecteur
-nom, prénom
Cours Java
DELANNOY
Cours C++
RITCHIE
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
Notion de class
Classe Livre
-titre, auteur
Classe Journal
-titre
Classe Employé
-nom, prénom, statut
Classe Lecteur
-nom, prénom
Titre = Cours C++
Auteur = Richie
Titre = Cours Java
Auteur = Delannoy
-Nom=ALAMI
- prénom = Asmae
-Statut = directrice
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
31
Classe Journal
-titre
Notion de class
Classe Livre
-titre, auteur
+Date emprunter(Lecteur)
Classe Employé
-nom, prénom, statut
Classe Lecteur
-nom, prénom
+ ListeDeLivres livresEmpruntés()
Cours Java
DELANNOY
Cours C++
RITCHIE
Almassae Asmae ALAMI
Directrice
Hamza KARIMI
Bibliothécaire
Latifa KAMAL
Lectrice
Ali IDRISSI
Lecteur
32
Notion de class
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;
double solde;
double getSolde() {
return solde;
}
void credite(double val) {
solde = solde + val;
}
}
Attributs
Méthodes
33
Notion de class
Une classe (ou type d’objets) représente une famille d’objets
qui partagent des propriétés communes: les objets qui ont les
mêmes états et les mêmes comportements.
 Une classe regroupe les objets qui ont :
- La même structure (même ensemble d’attributs)
- Le même comportement (même méthodes)
 Les classes servent pour la création des objets
 Un objet est une instance d’une classe
 Un programme OO est constitué de classes qui permettent
de créer des objets qui s’envoient des messages
 L’ensemble des interactions entre les objets défini un
algorithme
 Les relations entre les classes reflètent la décomposition du
programme
34
Notion de class: les membres
 Champs (appelés aussi attributs ou données membres):
l’ ensemble des membres définissent l’état d’un objet
(chaque objet a ses données propres).
 Méthodes (appelées aussi fonctions membres ou
comportement): définit un ensemble d’opérations
applicables à l’objet (on manipule les objets par des
appels de ses méthodes).
L’ensemble des méthodes est appelé l’interface de
l’objet.
Une interface définit toutes les opérations qu’on peut
appliquer à l’objet (définit tous ce qu’il est possible de
"faire" avec un objet).
35
Notion de class: Vocabulaire
36
Notion de class: instanciation
37
Hamza
12
18
Hind
17
15
instances Hamza et Hind).
Notion de class: exemple
Rectangle est une classe utilisée pour créer des objets
représentant des rectangles particuliers.
 Elle regroupe 4 données de type réel qui caractérisent le
rectangle: longueur , largeur et origine (x,y) (la position en
abscisse et en ordonnée de son origine).
 On suppose qu’on effectue les opérations de déplacement et
de calcul de la surface du rectangle.
 Les symboles + et – sont les spécificateurs d’accès
Exemple (notation UML)
38
Classe Véhicule : notation UML
39
- : private
# : protected
+ : public
$ (ou souligné) : static
40
public class Television {
// Attributs
private int volume;
private int chaine;
private boolean estAllume;
// Méthodes
public void allumer() { … }
public void eteindre() { … }
public void augmenterVolume() { … }
public void reduireVolume() { … }
public void changerChaine(int chaine) { … }
}
NB. Par convention, les noms des classes commencent par majuscule
ceux des attributs/ méthodes commencent par minuscule
Classe Television
41
Classe Television: instanciation
Une classe peut être réutilisée pour instancier
plusieurs objets
T1
T2
T3
42
Classe CompteBancaire: instanciation
Classe Etudiant: instanciation
Etudiant
• Prénom
• Age
• Filière
• Groupe
• SousGroupe
• Sexe
Etudiant1
• Mohammed
• 19
• MIP
• 1
• 2
• Garçon
Etudiant3
• aya
• 18
• GEGM
• 2
• 1
• Fille
Etudiant2
• Othman
• 21
• BCG
• 3
• 2
• Garçon
instance
instance instance
43
44
Définir une classe représentant des voitures.
 Les états des objets voiture doivent décrire
 démarrée ou non,
 position de boite de vitesse,
 vitesse…
 niveau d'essence, …
 Les comportements d'une voiture incluent:
 Démarrer, arrêter
 Changer boite de vitesse
 Accélérer, ralentir
 Tourner (selon le degré spécifié)
Classe Voiture: question
45
public class Voiture {
private boolean estDemarre;
private int posBoiteVitesse;
private int vitesse;
private int niveauEssence;
public void demarrer() { … }
public void arreter() { … }
public void setPosBoiteVitesse(int pos) { … }
public void accelerer() { … }
public void ralentir() { … }
public void tourner(int degre) { … }
}
Classe Voiture: solution
Qu’est ce qu’une classe ?
……….. En images
C’est un modèle de quelque chose d’abstrait.
C’est la définition qui permet de créer des
objets.
46
Qu’est ce qu’une classe ?
47
Fille
Elle a des attributs
Un prénom
Un nom
Une date de naissance
Une adresse
Un lieu de naissance
Manger
Boire
Parler
Dormir
Rougir
et des méthodes
Qu’est ce qu’une classe ?
Elle a des attributs et des méthodes
Un prénom
Un nom
Une date de naissance
Une adresse
Un lieu de naissance
Ce sont les propriétés
48
Manger
Boire
Parler
Dormir
Rougir
Ce sont les actions
qu’elle peut réaliser
Qu’est ce qu’une classe ?
public class Fille {
private int id;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0;
}
On donne le nom de la classe
49
Qu’est ce qu’une classe ?
public class Fille {
private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0 ;
}
Ce sont les attributs.
50
Qu’est ce qu’une classe ?
public class Fille {
private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0 ;
}
Elles sont communes à toutes les instances.
Elles sont accessibles uniquement par le biais d’un objet.
On les appelle variables
d’instance
51
Qu’est ce qu’une classe ?
public class Fille {
private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0 ;
}
Les variables de classe
Une variable de classe est une variable qui est commune à toutes
les instances de cette classe. Une variable de ce type peut être
accessible sans avoir à passer par une instance de la classe.
52
Qu’est ce qu’un objet?
………..en images
Un objet est l’instanciation d’une classe
53
Qu’est ce qu’un objet?
Voici un objet instancié
à partir de la classe
Fille
Il dispose de toutes
les propriétés et méthodes
définies dans la classe Fille.
54
Qu’est ce qu’un objet?
prénom : Sara
55
Qu’est ce qu’un objet?
Voici un autre
objet
Elle a un prénom :Aya
56
Qu’est ce qu’un objet?
Voici un autre
objet
Il a un prénom : Hind
57
Qu’est ce qu’un objet?
Ce sont tous
des objets
obtenus à partir
d’un modèle
58
Qu’est ce qu’un objet ?
Fille est un modèle (classe)
Tandis que Sara, Hind et Aya sont des
instances (objet)
Ils ont été instanciés à partir d’un
modèle (classe)
59
Différences entre classe et objet
Il est important de saisir les différences entre les notions de classe
et instance de la classe :
classe = attributs + méthodes + mécanismes d’instanciation +
mécanismes de destruction
instance de la classe = valeurs des attributs + accès aux méthodes
L’instanciation est le mécanisme qui permet de créer des instances
dont les traits sont décrits par la classe.
La destruction est le mécanisme qui permet de détruire une
instance de la classe.
L’ensemble des instances d’une classe constitue l’extension de la
classe.
60
61
Encapsulation
 L'encapsulation est un mécanisme consistant à
rassembler les données et les méthodes au sein d'une
structure (classe).
 Il ne s'agit plus de déclarer des données générales puis
un ensemble de procédures et fonctions destinées à les
gérer de manière séparée, mais bien de réunir le tout
sous le couvert d'une seule et même entité.
 L'utilisateur extérieur ne pourra pas modifier
directement l'information.
7
62
L'encapsulation permet de garder une cohérence dans
la gestion de l'objet, tout en assurant l'intégrité des
données qui ne pourront être accédées qu'au travers
des méthodes visibles.
Encapsulation7
63
Protection de l’information: encapsulation
Interface
ensemble des
services publics
offerts
Capsule
n’autorisant que les
demandes de service
public
Demande
de service
Accès aux données
Aya
Sara
Hind
Règle
Les données d’un objet (son état) peuvent être lues ou modifiées
uniquement par les services proposés par l’objet lui-même (ses
méthodes)
64
Encapsulation : définition
Définition
Le terme encapsulation désigne le principe consistant à cacher
l’information contenue dans un objet et de ne proposer que des
méthodes de modification/accès à ces propriétés (attributs).
65
Encapsulation : définition
Définition
Le terme encapsulation désigne le principe consistant à cacher
l’information contenue dans un objet et de ne proposer que des
méthodes de modification/accès à ces propriétés (attributs).
L’objet est vu de l’extérieur comme une boîte noire ayant
certaines propriétés et ayant un comportement spécifié.
La manière, dont le comportement a été implémenté,
est cachée aux utilisateurs de l’objet.
Intérêt
Protéger la structure interne de l’objet contre toute manipulation
non contrôlée, produisant une incohérence.
66
Encapsulation : exemple
 De point de vue utilisation, un objet est une boite noire qui
offre un certain nombre de méthodes permettant
d’interagir avec lui.
 Peu importe comment il est construit en interne, la seule
chose nécessaire pour pouvoir utiliser un objet est de savoir
ce qu’il peut faire et surtout comment lui demander.
Exemple: un poste de TV est une « boite noire » ayant pour
interface: un écran, des HP et une télécommande.
Pour changer de chaine, il suffit de changerChaine(int chaine)
Peu importe ce qui se passe réellement en interne.
67
Encapsulation : en pratique
L’encapsulation nécessite la spécification des parties publics
et privées de l’objet.
élément public: correspond à la partie visible de l’objet depuis
l’extérieur. c’est un ensemble de méthodes utilisables
par d’autres objets (environnement).
élément privé: correspond à la partie non visible de l’objet.
Il est constitué des éléments de l’objet visibles uniquement
de l’intérieur de l’objet et de la définition des méthodes.
68
L’encapsulation: à retenir
 C’est un mécanisme fondamental de la POO.
 Un utilisateur peut manipuler les données à l’aide
des méthodes.
 Il existe 3 niveaux d’accès: Public, Privé, Protégé:
 Public: accessible par tout le monde
 Private : uniquement manipulable par l’objet lui-même.
 Protégé: manipulable par l’objet lui-même & les enfants.
69
70
L’héritage8
 L'héritage est un mécanisme qui facilite la réutilisation du
code et la gestion de son évolution. Elle définit une relation
entre deux classes :
 Une classe mère ou super classe
 Une classe fille ou sous classe qui hérite de sa classe mère
 Les objets d'une classe fille ont accès aux données et aux
méthodes de la classe parent et peuvent les étendre (c-à-d
peuvent avoir des attributs et des méthodes qui leur sont
propres).
 Les sous classes peuvent redéfinir les variables et les
méthodes héritées.
 Les méthodes des classes filles sont redéfinies avec le même
nom, les mêmes types et le même nombre d'arguments.
L’héritage
Classe de base
(classe mère ou
super classe)
Classe dérivée
(classe fille ou
sous classe )
Relation d’héritage : Classe B "EST UN" Classe A
Exemple: un avion est un véhicule
Classe A
Classe B
71
L’héritage
Relation d’héritage
Classe B "EST UN" Classe A
Un chat EST UN animal
Une moto EST UN véhicule
Une décapotable EST UNe voiture
72
L’héritage
Une classe fille peut accéder
uniquement
aux données publiques et
protégées
73
L’héritage
 Java permet à une classe de s’élargir (extend)
relativement à une seule autre classe.
 Cette restriction est appelée héritage simple.
 Certains langages permettent de définir une classe
à partir de plusieurs autres, c’est l’héritage multiple
qui n’existe pas dans Java.
héritage simple
héritage multiple
74
L’héritage: exemple
Une personne a un nom, un prénom, un numéro de Sécurité Sociale.
Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale,
et une note.
Un professeur a un nom, un prénom, un numéro de
Sécurité Sociale, et une matière.
Quels sont les propriétés communes aux 3 classes ?
75
L’héritage: exemple
Une personne a un nom, un prénom, un numéro de Sécurité
Sociale.
Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale,
et une note.
Un professeur a un nom, un prénom, un numéro de
Sécurité Sociale, et une matière.
propriétés communes aux 3 classes
en rouge
76
L’héritage: exemple
La classe Professeur et La classe
Etudiant pourront les utiliser par le
biais de l’héritage.
On peut centraliser le nom, le prénom, le numéro
de Sécurité Sociale au sein d’une classe Personne.
77
L’héritage: exemple
Un professeur est une personne.
Un étudiant est une personne.
Il s’agit de la relation « est un »
78
L’héritage: exemple
Sans héritage, on aurait
+
#
Personne
#name : String
#prenom : String
#numSS :String
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
+getPersonne(): void
+setPersonne(String f,String n,
int s)
+
#
Etudiant
-name : String
-prenom : String
-numSS :String
-note : int
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
+getNote):int
+setNote(int n):void
+getEtudiant(): void
+setEtudiant(String f,String n,
int s,int n)
+
#
Professeur
-name : String
-prenom : String
-numSS :String
- Matiere :String
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
setMatiere(String n) : void
+getMatiere):String
+getProfesseur(): void
+setProfesseur(String f,String
n, String m)
Quelles sont les propriétés
et méthodes identiques?
79
L’héritage: exemple
Sans héritage, on aurait
+
#
Personne
#name : String
#prenom : String
#numSS :String
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
+getPersonne(): void
+setPersonne(String f,String n,
int s)
+
#
Etudiant
-name : String
-prenom : String
-numSS :String
-note : int
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
+getNote):int
+setNote(int n):void
+getEtudiant(): void
+setEtudiant(String f,String n,
int s,int n)
+
#
Professeur
-name : String
-prenom : String
-numSS :String
- Matiere :String
+getName():String
+setName(String n): String
+getprenom():String
+setprenom(String n): String
+setNum(int n) : void
+getNum():int
setMatiere(String n) : void
+getMatiere):String
+getProfesseur(): void
+setProfesseur(String f,String
n, String m)
propriétés et méthodes identiques?
80
Avec héritage, on aurait
N’est-il pas plus simple
d’implémenter ce modèle?
81
L’héritage: exemple
L’héritage: à retenir
 C’est un concept fondamental de la POO
 Il offre la possibilité de réutiliser les
composants logiciels existants.
 Une classe dérivée(=fille) pourra utiliser les
méthodes et attributs de la classe mère (=super
classe) et pourra ajouter ses propres
propriétés.
Ce qui offre la possibilité de ne
pas repartir de 0
82
83
 Une télévision et un écran d'ordinateur sont tous deux des
appareils à écran.
 Un appareil à écran possède un poids, une longueur de diagonale
et il est possible de l'éteindre et de l'allumer.
 Une télévision est un tel appareil, possédant également une liste
de chaînes mémorisées, une action permettant de mémoriser une
chaîne, ainsi que d'autres non précisées ici qui font d'un appareil
à écran... une télévision.
 Un écran d'ordinateur est également un appareil à écran, mais
possédant une résolution actuelle, une liste de résolutions
possibles, et une action permettant de changer la résolution
actuelle.
 La télévision d'un coté, et l'écran d'ordinateur de l'autre sont deux
concepts basés sur celui de l'appareil à écran, et lui ajoutant
divers éléments qui le rendent particulier. Si je vous dis que j'ai un
appareil à écran devant moi, vous pouvez légitimement penser
qu'il peut s'agir d'une télévision, d'un écran d'ordinateur, voire
d'autre chose...
L’héritage: exercice
84
 Une télévision et un écran d'ordinateur sont tous deux des
appareils à écran.
 Un appareil à écran possède un poids, une longueur de diagonale
et il est possible de l'éteindre et de l'allumer.
 Une télévision est un tel appareil, possédant également une liste
de chaînes mémorisées, une action permettant de mémoriser une
chaîne, ainsi que d'autres non précisées ici qui font d'un appareil
à écran... une télévision.
 Un écran d'ordinateur est également un appareil à écran, mais
possédant une résolution actuelle, une liste de résolutions
possibles, et une action permettant de changer la résolution
actuelle.
 La télévision d'un coté, et l'écran d'ordinateur de l'autre sont deux
concepts basés sur celui de l'appareil à écran, et lui ajoutant
divers éléments qui le rendent particulier. Si je vous dis que j'ai un
appareil à écran devant moi, vous pouvez légitimement penser
qu'il peut s'agir d'une télévision, d'un écran d'ordinateur, voire
d'autre chose...
L’héritage: exercice
85
L’héritage: exercice
86
Factoriser les éléments communs (attributs, méthodes…) de
l’ensemble de classes que vous allez dégager de ce texte
L’héritage: exercice
 Un compte chèque et un compte épargne sont tous deux des
comptes bancaires.
 Un compte chèque possède un solde et un montant découvert
autorisé qu’il est possible de changer. On peut effectuer des
opérations de dépôt et de retrait d’argents. Le retrait n’est
autorisé que suivant le découvert.
 Un compte épargne possède également un solde. Il est rémunéré
selon un taux ce qui génère des intérêts sur lesquels on peut
effectuer des opérations de calcul et de crédit.
 Un compte épargne est un compte bancaire sur lequel, on peut
effectuer également des opérations de dépôt et de retrait
d’argents. Il n’y a pas de découvert autorisé pour le retrait
d’argent. Le taux d’intérêt peut être changé.
87
L’héritage: exercice
 Un compte chèque et un compte épargne sont tous deux des comptes
bancaires.
 Un compte chèque possède un solde et un montant découvert autorisé
qu’il est possible de changer. On peut effectuer des opérations de
dépôt et de retrait d’argents. Le retrait n’est autorisé que suivant le
découvert.
 Un compte épargne possède également un solde. Il est rémunéré selon
un taux ce qui génère des intérêts sur lesquels on peut effectuer des
opérations de calcul et de crédit.
 Un compte épargne est un compte bancaire sur lequel, on peut
effectuer également des opérations de dépôt et de retrait d’argents.
Il n’y a pas de découvert autorisé pour le retrait d’argent. Le taux
d’intérêt peut être changé.
88
Factoriser les éléments communs (attributs, méthodes…) d’un
ensemble de classes
L’héritage: exercice
89
L’héritage: exercice
90
L’héritage: exercice
 Un plan épargne logement est un compte épargne
ayant des caractéristiques propres.
 Un montant de versement doit se faire sur une
durée donnée et pour des périodes bien précises.
 Une fois la période écoulée, le montant de prêt
peut être calculé et l’opération de retrait peut se
faire.
 Aucun retrait ne peut s’effectuer avant
l’écoulement de la durée fixée.
91
L’héritage: exercice
 Un plan épargne logement est un compte épargne
ayant des caractéristiques propres.
 Un montant de versement doit se faire sur une
durée donnée et pour des périodes bien précises.
 Une fois la période écoulée, le montant de prêt
peut être calculé et l’opération de retrait peut se
faire.
 Aucun retrait ne peut s’effectuer avant
l’écoulement de la durée fixée.
92
L’héritage: exercice
93
L’héritage: exercice
Redifinition de méthode
94
Polymorphisme9
 Faculté qu'ont des objets différents de réagir
différemment en réponse au même message.
 Marcher sur la queue d'un chat => il miaule
 Marcher sur la queue d'un chien => il aboie
 Même nom de fonction, plusieurs implantations:
Fonction: opération addition (+)
Addition des nombres entiers,
1 + 2 = 3
Addition des nombres complexes,
1 + 2i + 3 + 4i = 4 + 6i
95
Polymorphisme9
 Le polymorphisme offre aux objets la possibilité
d ’appartenir à plusieurs catégories à la fois
 En effet, nous avons certainement tous appris à
l'école qu'il était impossible d'additionner des
pommes et des oranges
 Mais, on peut écrire l ’expression suivante:
3 pommes + 5 oranges = 8 fruits
96
Polymorphisme
 Une façon de décrire l'exemple consistant à additionner des
pommes et des oranges serait d'imaginer que nous disons
pommes et oranges mais que nous manipulons en fait des
fruits. Nous pourrions écrire alors la formule correcte :
3 (fruits) pommes
+ 5 (fruits) oranges
---------------------------------------------
= 8 fruits
 Cette façon de voir les choses implique que les pommes et les
oranges soient "transformées" en fruits préalablement à
l'établissement du problème.
 Le polymorphisme est un concept extrêmement puissant en
POO, il permet de manipuler des objets sans en connaître
tout à fait le type tout en se basant sur la relation
d’héritage.
 Le polymorphisme en Java, se traduit par :
 La compatibilité entre un type dérivé et un type
ascendant.
 La ligature dynamique des méthodes, dans le sens où il
permet d’obtenir le comportement adapté à chaque type
d’objet, sans avoir besoin de tester sa nature de
quelque façon que ce soit.
 Le polymorphisme se base sur cette affirmation : un objet a
comme type non seulement sa classe mais aussi n’importe
quelle classe dérivée.
Polymorphisme
97
98
Propriété pour un même message de déclencher des méthodes
différentes
Feu
Voiture
Velo
changer (Vert)
Demarrer()
Demarrer()
- Débrayer
- Passer la
première
- Accélérer
- Embrayer
- Pédaler
Plusieurs classes peuvent posséder une méthode de même nom. Suivant
la nature de l'objet auquel elle doit s'appliquer, on appliquera telle ou
telle méthode.
Le polymorphisme : consiste donc à appeler la bonne méthode
d'après le type de l'objet implémenté.
Polymorphisme
 Même libellé de la fonction dessiner().
Les fonctions ayant la même sémantique ont le même nom.
 Programmation plus souple => ajouter une classe RECTANGLE …
Il suffit de le faire et d'écrire la méthode dessiner()
dans cette classe.
 En programmation procédurale, il faut reprendre le code
dessiner() (il faut déjà l'avoir ce qui n'est toujours pas le cas)
et l'enrichir (sans le détériorer, histoire de pouvoir toujours
dessiner() un cercle par exemple).
Polymorphisme:
avantages
classe CARRE
dessiner();
classe CERCLE
dessiner();
classe TRIANGLE
dessiner();
99
Polymorphisme: à retenir
100
 C’est un concept fondamental de la POO
 Le polymorphisme traite de la capacité de l'objet
à posséder plusieurs formes.
 Cette capacité dérive directement du principe
d'héritage.
 C’est la faculté qu'ont des objets différents de
réagir différemment en réponse au même message.
 C’est la capacité du système de choisir
dynamiquement la méthode qui correspond au type
réel de l’objet.

Más contenido relacionado

La actualidad más candente

exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 
Présentation python
Présentation pythonPrésentation python
Présentation pythonSarah
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 

La actualidad más candente (20)

Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Langage C#
Langage C#Langage C#
Langage C#
 
Cours java
Cours javaCours java
Cours java
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
patron de conception
patron de conception patron de conception
patron de conception
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 

Destacado

Les français à l'heure de la déco manie
Les français à l'heure de la déco manie Les français à l'heure de la déco manie
Les français à l'heure de la déco manie Ipsos France
 
Métier de bibliothécaire : où est l'entrée ?
Métier de bibliothécaire : où est l'entrée ?Métier de bibliothécaire : où est l'entrée ?
Métier de bibliothécaire : où est l'entrée ?Dominique Lahary
 
La e-transformation du secteur de la photographie
La e-transformation du secteur de la photographieLa e-transformation du secteur de la photographie
La e-transformation du secteur de la photographieThierry Zenou
 
Interação além da tela: design de aplicações para as próximas gerações (JATIC)
Interação além da tela: design de aplicações para as próximas gerações� (JATIC)Interação além da tela: design de aplicações para as próximas gerações� (JATIC)
Interação além da tela: design de aplicações para as próximas gerações (JATIC)Tatiana Tavares
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuOdair Bonin Borges
 
DroneLab : a oficina de Drones
DroneLab : a oficina de DronesDroneLab : a oficina de Drones
DroneLab : a oficina de DronesOdair Bonin Borges
 
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...Johnnatan Messias
 
Café com Marketing Drone Marketing
Café com Marketing Drone MarketingCafé com Marketing Drone Marketing
Café com Marketing Drone MarketingMarina Ramos
 
AdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 MonateAdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 Monatemarc hoeft
 
Qu’est ce que c’est sous marin
Qu’est ce que c’est sous marinQu’est ce que c’est sous marin
Qu’est ce que c’est sous marinstewartna
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Michel Kuipers
 
Drones Joaquin Camarra
Drones Joaquin CamarraDrones Joaquin Camarra
Drones Joaquin Camarrajoaquincamarra
 
Practico
PracticoPractico
Practicototeto
 
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterTroisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterBIHARTEAN
 
Drone A.R
Drone A.RDrone A.R
Drone A.Reidani
 

Destacado (20)

Les français à l'heure de la déco manie
Les français à l'heure de la déco manie Les français à l'heure de la déco manie
Les français à l'heure de la déco manie
 
Métier de bibliothécaire : où est l'entrée ?
Métier de bibliothécaire : où est l'entrée ?Métier de bibliothécaire : où est l'entrée ?
Métier de bibliothécaire : où est l'entrée ?
 
4èmes Rencontres ASIT VD - Drones : de la technologies aux applications
4èmes Rencontres ASIT VD - Drones : de la technologies aux applications4èmes Rencontres ASIT VD - Drones : de la technologies aux applications
4èmes Rencontres ASIT VD - Drones : de la technologies aux applications
 
Gestion du temps stratégique
Gestion du temps stratégiqueGestion du temps stratégique
Gestion du temps stratégique
 
La e-transformation du secteur de la photographie
La e-transformation du secteur de la photographieLa e-transformation du secteur de la photographie
La e-transformation du secteur de la photographie
 
Interação além da tela: design de aplicações para as próximas gerações (JATIC)
Interação além da tela: design de aplicações para as próximas gerações� (JATIC)Interação além da tela: design de aplicações para as próximas gerações� (JATIC)
Interação além da tela: design de aplicações para as próximas gerações (JATIC)
 
Carlos 8ºb
Carlos 8ºbCarlos 8ºb
Carlos 8ºb
 
Hackeando drones com Software Livre
Hackeando drones com Software LivreHackeando drones com Software Livre
Hackeando drones com Software Livre
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seu
 
DroneLab : a oficina de Drones
DroneLab : a oficina de DronesDroneLab : a oficina de Drones
DroneLab : a oficina de Drones
 
Epicentro - Valter Yogui
Epicentro - Valter YoguiEpicentro - Valter Yogui
Epicentro - Valter Yogui
 
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...
Monografia: Framework Para Sistemas de Navegação de Veículos Aéreos Não Tripu...
 
Café com Marketing Drone Marketing
Café com Marketing Drone MarketingCafé com Marketing Drone Marketing
Café com Marketing Drone Marketing
 
AdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 MonateAdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 Monate
 
Qu’est ce que c’est sous marin
Qu’est ce que c’est sous marinQu’est ce que c’est sous marin
Qu’est ce que c’est sous marin
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
 
Drones Joaquin Camarra
Drones Joaquin CamarraDrones Joaquin Camarra
Drones Joaquin Camarra
 
Practico
PracticoPractico
Practico
 
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterTroisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
 
Drone A.R
Drone A.RDrone A.R
Drone A.R
 

Similar a Ch 01 poo

PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptEddySHANGA
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxZakariaLabay
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxFootballLovers9
 
Language C++ Ch01
Language C++ Ch01 Language C++ Ch01
Language C++ Ch01 yarsenv47
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011yassine kchiri
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxafamanalafa2001
 
presentationcoursbd.pdf
presentationcoursbd.pdfpresentationcoursbd.pdf
presentationcoursbd.pdfAabidiHafid
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIdriss22
 
m103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfm103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfFootballLovers9
 
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueVisite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueGautier Poupeau
 
01-introduction (2).ppt
01-introduction (2).ppt01-introduction (2).ppt
01-introduction (2).pptSouha Bennani
 
IODS : Retour d’expériences au sein du Center for Data Science
IODS : Retour d’expériences au sein du Center for Data ScienceIODS : Retour d’expériences au sein du Center for Data Science
IODS : Retour d’expériences au sein du Center for Data ScienceBorderCloud
 

Similar a Ch 01 poo (20)

PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
 
Poo
PooPoo
Poo
 
Cours BDD.pptx
Cours BDD.pptxCours BDD.pptx
Cours BDD.pptx
 
Language C++ Ch01
Language C++ Ch01 Language C++ Ch01
Language C++ Ch01
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011
 
SI_MCC_2020_21.pptx
SI_MCC_2020_21.pptxSI_MCC_2020_21.pptx
SI_MCC_2020_21.pptx
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptx
 
presentationcoursbd.pdf
presentationcoursbd.pdfpresentationcoursbd.pdf
presentationcoursbd.pdf
 
Pe
PePe
Pe
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.ppt
 
Intro merise
Intro meriseIntro merise
Intro merise
 
m103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfm103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdf
 
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physiqueVisite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
Visite guidée au pays de la donnée - Du modèle conceptuel au modèle physique
 
01-introduction (2).ppt
01-introduction (2).ppt01-introduction (2).ppt
01-introduction (2).ppt
 
01-introduction.ppt
01-introduction.ppt01-introduction.ppt
01-introduction.ppt
 
IODS : Retour d’expériences au sein du Center for Data Science
IODS : Retour d’expériences au sein du Center for Data ScienceIODS : Retour d’expériences au sein du Center for Data Science
IODS : Retour d’expériences au sein du Center for Data Science
 

Más de Yassine Badri

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de donnéesYassine Badri
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationellesYassine Badri
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesYassine Badri
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours Yassine Badri
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentationYassine Badri
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock Yassine Badri
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php Yassine Badri
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock Yassine Badri
 
cours base de données
cours base de donnéescours base de données
cours base de donnéesYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Yassine Badri
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2Yassine Badri
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 

Más de Yassine Badri (20)

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de données
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
cours base de données
cours base de donnéescours base de données
cours base de données
 
Cours php
Cours php Cours php
Cours php
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 

Último

Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 

Último (18)

Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 

Ch 01 poo

  • 1. Programmation Orientée Objet POO Prof. Hakim ALLALI Licences EEA & RTT. Fév 2013
  • 2. Plan 1 • Introduction 2 • Programmation orientée objet (POO) 3 • POO vs PPS (Prog. Procédurale Structurée) 4 • Avantages de la POO 5 • Notion d’objet 6 • Notion de classe 7 • Caractéristiques de la POO : Encapsulation 8 • Caractéristiques de la POO : Héritage 9 • Caractéristiques de la POO : Polymorphisme 2
  • 3. Introduction  La POO utilise une approche différente de celle des langages procéduraux.  Comment certaines sociétés de l’industrie informatique sont- elles devenues si importantes et aussi vite ?  Elles fabriquent en général de bonnes machines, vendues à prix bas, dans une période où il existe une demande.  Comment ont-elles pu construire tant de modèles aussi rapidement, et comment ont-elles répondu aussi vite aux changements que subit le marché de la micro-informatique ? 1 3
  • 4. Introduction  Essentiellement, parce qu’elles ont sous-traité une bonne partie de leurs travaux. Elles ont acheté des éléments à des vendeurs réputés et se sont chargées de l’assemblage des machines. (alimentations, disques durs, cartes mères, etc.)  Production rapide et réduction des coûts. Ces constructeurs achetaient des «fonctionnalités préconditionnées». (elles acquéraient quelque chose qui possédait certaines propriétés (taille, poids, etc.) et une certaine fonctionnalité (une sortie stabilisée, une puissance électrique, etc.) 4
  • 5. Programmation orientée objet  La POO s’appuie sur la même idée.  Un programme est constitué d’objets qui interagissent (communiquent) afin de réaliser une ou plusieurs tâches.  Chaque objet possède certaines propriétés et peut accomplir certaines opérations.  C’est le temps et les fonctionnalités disponibles qui décideront du fait que vous construisez un objet ou que vous utilisez un autre disponible. 2 5
  • 6. Programmation orientée objet2  La POO propose une méthodologie de programmation centrée sur les objets. Où un objet peut être vu comme une entité regroupant un ensemble de données et de méthodes de traitement.  Le programmeur  Doit d’abord identifier les objets qui doivent être utilisés (ou manipulés) par le programme: on commence par décider quels objets doivent être inclus dans le programme.  Va ensuite, écrire les traitements, en associant chaque traitement à un objet donné. 6
  • 7. Programmation orientée objet2 Il s'agit donc :  de déterminer les objets présents dans le programme.  d'identifier leurs données.  de définir les traitements à faire sur ses objets. 7
  • 8. POO vs PPS (Prog. Procédurale Structurée)  PPS : concevoir un ensemble de fonctions (et procédures) permettant de résoudre un problème.  Après avoir déterminé ces fonctions, trouver la manière appropriée de stocker les données. Algorithmes + Structures de données = Programme  D’abord, vous décidez de la manière dont vous allez manipuler les données; ensuite seulement, vous choisissez le genre de structures que vous imposeriez aux données afin de faciliter cette manipulation. 3 8
  • 9.  La POO inverse cet ordre et place les données au premier plan avant de déterminer l’algorithme qui sera employé pour opérer sur ces données.  En POO, chaque objet accomplit quelques tâches associées.  Si un objet dépend d’une tâche qui n’est pas de sa responsabilité, il doit avoir accès à un autre objet capable d’accomplir cette tâche. 3 9 POO vs PPS (Prog. Procédurale Structurée)
  • 10. POO vs PPS3 POO PPS Principe : On sépare les données des moyens de traitement de ces données. Principe : afin d’établir de façon stable et robuste l’architecture d’un système, il semble raisonnable de s’organiser autour des données manipulées. 10
  • 11.  Approche procédurale : Que doit faire mon programme ?  Approche orientée objet : De quoi doit être composé mon programme ? Exemple: Gestion d'une bibliothèque Cours Java DELANNOY Cours C++ RITCHIE Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur Gérer le stock Gérer les emprunts de livres 11
  • 13.  La construction d’un système va s’axer principalement sur la détermination des données dans un premier temps et la réalisation des traitements (de haut-niveau) agissant sur ces données dans un second temps.  Cette approche permet de bâtir des systèmes plus simples à maintenir et à faire évoluer.  On regroupe dans une même entité informatique, appelée objet, les structures de données et les moyens de traitement de ces données. Avantages de la POO4 13
  • 14. Avantages de la POO  Programmation modulaire: Facilité de la réutilisation du code.  Encapsulation (Principe de la POO) et abstraction (proche du monde réel): – Regrouper les caractéristiques dans une classe – Cacher les membres d’une classe: choix dans les niveaux de confidentialité  Programmation par « composants » (chaque portion de code est isolée): facilité de l’évolution du code. 4 14
  • 15. Problématique de la Programmation Le schéma simplifié d’un système informatique peut se résumer par la formule : Système informatique = Structures de données + Traitements Le cycle de vie d’un système peut être décomposé en deux grandes phases : Une phase de production qui consiste à réaliser le logiciel. Une phase de maintenance qui consiste à corriger et à faire évoluer le logiciel. Lors de la production du système (au sens industriel du terme), le concepteur a deux grandes options : soit orienter sa conception sur les traitements. soit orienter sa conception sur les données. 15
  • 16. 16 Résolution d’une problématique Depuis les années 80, la croissance de l'industrie du logiciel est très importante. Elle atteint près de 15 % du PNB des Etats Unis, soit une dépense estimée à 300 Milliard $. Un effort important est donc fait pour minimiser les dépenses de conception et de maintenance du logiciel. Selon une enquête réalisée par ACM sigsoft (Eng. NotesV10, No 5, Oct. 1985) sur 9 projets du gouvernement américain: S'orienter vers de nouvelles approches autres que celles utilisées, à l'époque (1985), dans la conception et le développement des applications POO
  • 17. Les grands principes de la POO  Classe, Objet  Encapsulation  Héritage  Polymorphisme 17  Ces concepts ont un impact direct sur :  La qualité du système  Le coût de développement et de maintenance  Le délai du développement et de maintenance  Si ces concepts de base sont simples, leur utilisation nécessite de l’expérience
  • 18.  Objet: Un objet est une entité cohérente rassemblant des données (attributs ou propriétés) et du traitement (méthodes, services) travaillant sur ses données.  Une classe peut être considérée comme un moule à partir duquel on peut créer des objets. Notion d’objet5 18
  • 19.  Approche procédurale : Que doit faire mon programme ?  Approche orientée objet : De quoi doit être composé mon programme ? Exemple: Gestion d'une bibliothèque Cours Java DELANNOY Cours C++ RITCHIE Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur Gérer le stock Gérer les emprunts de livres 19
  • 20. Exemple: un livre à la bibliothèque est caractérisé par: - Un titre - Un auteur - Un numéro d’inventaire - Un numéro de classement Un objet de type Livre est constitué d’attributs qui caractérisent la structure de cet objet: Exemple d’attributs de l’objet livre L'objet est manipulé par exemple par les méthodes suivantes: – disponible : Méthode permettant de dire si le livre est disponible à la bibliothèque – qteDisponible: Méthode permettant d’agir sur la quantité disponible private String titre; private String auteur private int numInv; private String numClas; Static int Qte; 20 - Une quantité (le nombre de livres disponibles à la biblihothèque).
  • 21.  Les structures de données définies dans l’objet sont appelées ses attributs (propriétés).  Les procédures et fonctions définies dans l’objet sont appelées ses méthodes (opérations).  Les attributs et méthodes d’un objet sont appelés ses membres.  L’ensemble des valeurs des attributs d’un objet à un instant donné est appelé état interne. Vocabulaire à retenir 21
  • 22. Notion d’objet: 3 caractéristiques5  Un objet est caractérisé par : Son comportement : que pouvez-vous faire avec cet objet, ou quelles méthodes pouvez-vous lui appliquer ? Son état : Comment l’objet réagit-il lorsque vous appliquez ces méthodes ? (son aspect actuel) L’état d’un objet peut changer dans le temps, mais pas spontanément. Une modification dans l’état d’un objet doit être la conséquence d’appels de méthodes. Son identité : Comment l’objet se distingue-t-il des autres qui peuvent avoir le même comportement et le même état ? 22
  • 23. 1) son comportement Quelles sont les méthodes qu’on peut lui appliquer? Exemples: Un poisson peut-il marcher? Un avion peut-il nager ? Les comportements de l’objet "Télévision" : allumer, changer de chaîne, changer de volume du son, éteindre Notion d’objet: 3 caractéristiques5 23
  • 24. Exemple: Comportement de l’objet Il est caractérisé par des méthodes (appelées parfois fonctions membres) qui permettent de modifier l’état de l’objet.  Une méthode rattachée à l’objet permet de déclencher un des comportements associés à l’objet.  Il n’est pas possible d’agir directement sur les données d’un objet pour modifier son état; il est nécessaire de passer par ses méthodes. On dit qu'on « envoie un message » (fait une requête) à un objet. Un objet peut recevoir un message qui déclenche – une méthode qui modifie son état et / ou – une méthode qui envoie un message à un autre objet demarrer maVoiture moteur 24
  • 25. 2) son état Quel est la réaction de l’objet lorsqu’on lui applique une méthode?  Dans un Système d’information, chaque commande est différenciée par une référence unique.  Elle va avoir un état : en cours d’acheminement, envoyée , délivrée.  Si une commande est expédiée, peut-on la modifier? c’est-à-dire, ajouter un article. Notion d’objet: 3 caractéristiques5 25 Les états de l’ objet "Télévision": allumé/éteint, chaîne courante, volume de son
  • 26. Etat de l’objet Il est défini à l’aide d’attributs (Fields, appelés aussi données membres). Ce sont des variables associées à l’objet et qui stockent des valeurs (des informations sur l'état de l'objet). Exemple: L’état d’un objet de type Voiture est caractérisé par les attributs : couleur et vitesse L’état de l’objet maVoiture est caractérisé par les données couleur = noire vitesse = 80 Nom de l’objet (identifiant) Description des attributs maVoiture - couleur = noire - vitesse = 80 26
  • 27. Notion d’objet: caractéristiques5 3) son identité L'objet possède une identité, qui permet de le distinguer des autres objets, indépendamment de son état. Chaque objet est unique. Chaque objet a une identité. 27
  • 28. Chaque objet est unique. Même dans le cas de 2 jumeaux Ils peuvent avoir le même prénom, Le même nom, la même adresse. La même date de naissance, Le même lieu de naissance. Chacun aura une empreinte digitale différente. Identité de l’objet 28
  • 29. Notion de class 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 Journal Classe Employé Classe Lecteur Cours Java DELANNOY Cours C++ RITCHIE Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur 6 29
  • 30. Notion de class 30 Classe Livre -titre, auteur Classe Journal -titre Classe Employé -nom, prénom, statut Classe Lecteur -nom, prénom Cours Java DELANNOY Cours C++ RITCHIE Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur
  • 31. Notion de class Classe Livre -titre, auteur Classe Journal -titre Classe Employé -nom, prénom, statut Classe Lecteur -nom, prénom Titre = Cours C++ Auteur = Richie Titre = Cours Java Auteur = Delannoy -Nom=ALAMI - prénom = Asmae -Statut = directrice Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur 31
  • 32. Classe Journal -titre Notion de class Classe Livre -titre, auteur +Date emprunter(Lecteur) Classe Employé -nom, prénom, statut Classe Lecteur -nom, prénom + ListeDeLivres livresEmpruntés() Cours Java DELANNOY Cours C++ RITCHIE Almassae Asmae ALAMI Directrice Hamza KARIMI Bibliothécaire Latifa KAMAL Lectrice Ali IDRISSI Lecteur 32
  • 33. Notion de class 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; double solde; double getSolde() { return solde; } void credite(double val) { solde = solde + val; } } Attributs Méthodes 33
  • 34. Notion de class Une classe (ou type d’objets) représente une famille d’objets qui partagent des propriétés communes: les objets qui ont les mêmes états et les mêmes comportements.  Une classe regroupe les objets qui ont : - La même structure (même ensemble d’attributs) - Le même comportement (même méthodes)  Les classes servent pour la création des objets  Un objet est une instance d’une classe  Un programme OO est constitué de classes qui permettent de créer des objets qui s’envoient des messages  L’ensemble des interactions entre les objets défini un algorithme  Les relations entre les classes reflètent la décomposition du programme 34
  • 35. Notion de class: les membres  Champs (appelés aussi attributs ou données membres): l’ ensemble des membres définissent l’état d’un objet (chaque objet a ses données propres).  Méthodes (appelées aussi fonctions membres ou comportement): définit un ensemble d’opérations applicables à l’objet (on manipule les objets par des appels de ses méthodes). L’ensemble des méthodes est appelé l’interface de l’objet. Une interface définit toutes les opérations qu’on peut appliquer à l’objet (définit tous ce qu’il est possible de "faire" avec un objet). 35
  • 36. Notion de class: Vocabulaire 36
  • 37. Notion de class: instanciation 37 Hamza 12 18 Hind 17 15 instances Hamza et Hind).
  • 38. Notion de class: exemple Rectangle est une classe utilisée pour créer des objets représentant des rectangles particuliers.  Elle regroupe 4 données de type réel qui caractérisent le rectangle: longueur , largeur et origine (x,y) (la position en abscisse et en ordonnée de son origine).  On suppose qu’on effectue les opérations de déplacement et de calcul de la surface du rectangle.  Les symboles + et – sont les spécificateurs d’accès Exemple (notation UML) 38
  • 39. Classe Véhicule : notation UML 39 - : private # : protected + : public $ (ou souligné) : static
  • 40. 40 public class Television { // Attributs private int volume; private int chaine; private boolean estAllume; // Méthodes public void allumer() { … } public void eteindre() { … } public void augmenterVolume() { … } public void reduireVolume() { … } public void changerChaine(int chaine) { … } } NB. Par convention, les noms des classes commencent par majuscule ceux des attributs/ méthodes commencent par minuscule Classe Television
  • 41. 41 Classe Television: instanciation Une classe peut être réutilisée pour instancier plusieurs objets T1 T2 T3
  • 43. Classe Etudiant: instanciation Etudiant • Prénom • Age • Filière • Groupe • SousGroupe • Sexe Etudiant1 • Mohammed • 19 • MIP • 1 • 2 • Garçon Etudiant3 • aya • 18 • GEGM • 2 • 1 • Fille Etudiant2 • Othman • 21 • BCG • 3 • 2 • Garçon instance instance instance 43
  • 44. 44 Définir une classe représentant des voitures.  Les états des objets voiture doivent décrire  démarrée ou non,  position de boite de vitesse,  vitesse…  niveau d'essence, …  Les comportements d'une voiture incluent:  Démarrer, arrêter  Changer boite de vitesse  Accélérer, ralentir  Tourner (selon le degré spécifié) Classe Voiture: question
  • 45. 45 public class Voiture { private boolean estDemarre; private int posBoiteVitesse; private int vitesse; private int niveauEssence; public void demarrer() { … } public void arreter() { … } public void setPosBoiteVitesse(int pos) { … } public void accelerer() { … } public void ralentir() { … } public void tourner(int degre) { … } } Classe Voiture: solution
  • 46. Qu’est ce qu’une classe ? ……….. En images C’est un modèle de quelque chose d’abstrait. C’est la définition qui permet de créer des objets. 46
  • 47. Qu’est ce qu’une classe ? 47 Fille Elle a des attributs Un prénom Un nom Une date de naissance Une adresse Un lieu de naissance Manger Boire Parler Dormir Rougir et des méthodes
  • 48. Qu’est ce qu’une classe ? Elle a des attributs et des méthodes Un prénom Un nom Une date de naissance Une adresse Un lieu de naissance Ce sont les propriétés 48 Manger Boire Parler Dormir Rougir Ce sont les actions qu’elle peut réaliser
  • 49. Qu’est ce qu’une classe ? public class Fille { private int id; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0; } On donne le nom de la classe 49
  • 50. Qu’est ce qu’une classe ? public class Fille { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Ce sont les attributs. 50
  • 51. Qu’est ce qu’une classe ? public class Fille { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Elles sont communes à toutes les instances. Elles sont accessibles uniquement par le biais d’un objet. On les appelle variables d’instance 51
  • 52. Qu’est ce qu’une classe ? public class Fille { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Les variables de classe Une variable de classe est une variable qui est commune à toutes les instances de cette classe. Une variable de ce type peut être accessible sans avoir à passer par une instance de la classe. 52
  • 53. Qu’est ce qu’un objet? ………..en images Un objet est l’instanciation d’une classe 53
  • 54. Qu’est ce qu’un objet? Voici un objet instancié à partir de la classe Fille Il dispose de toutes les propriétés et méthodes définies dans la classe Fille. 54
  • 55. Qu’est ce qu’un objet? prénom : Sara 55
  • 56. Qu’est ce qu’un objet? Voici un autre objet Elle a un prénom :Aya 56
  • 57. Qu’est ce qu’un objet? Voici un autre objet Il a un prénom : Hind 57
  • 58. Qu’est ce qu’un objet? Ce sont tous des objets obtenus à partir d’un modèle 58
  • 59. Qu’est ce qu’un objet ? Fille est un modèle (classe) Tandis que Sara, Hind et Aya sont des instances (objet) Ils ont été instanciés à partir d’un modèle (classe) 59
  • 60. Différences entre classe et objet Il est important de saisir les différences entre les notions de classe et instance de la classe : classe = attributs + méthodes + mécanismes d’instanciation + mécanismes de destruction instance de la classe = valeurs des attributs + accès aux méthodes L’instanciation est le mécanisme qui permet de créer des instances dont les traits sont décrits par la classe. La destruction est le mécanisme qui permet de détruire une instance de la classe. L’ensemble des instances d’une classe constitue l’extension de la classe. 60
  • 61. 61
  • 62. Encapsulation  L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure (classe).  Il ne s'agit plus de déclarer des données générales puis un ensemble de procédures et fonctions destinées à les gérer de manière séparée, mais bien de réunir le tout sous le couvert d'une seule et même entité.  L'utilisateur extérieur ne pourra pas modifier directement l'information. 7 62
  • 63. L'encapsulation permet de garder une cohérence dans la gestion de l'objet, tout en assurant l'intégrité des données qui ne pourront être accédées qu'au travers des méthodes visibles. Encapsulation7 63
  • 64. Protection de l’information: encapsulation Interface ensemble des services publics offerts Capsule n’autorisant que les demandes de service public Demande de service Accès aux données Aya Sara Hind Règle Les données d’un objet (son état) peuvent être lues ou modifiées uniquement par les services proposés par l’objet lui-même (ses méthodes) 64
  • 65. Encapsulation : définition Définition Le terme encapsulation désigne le principe consistant à cacher l’information contenue dans un objet et de ne proposer que des méthodes de modification/accès à ces propriétés (attributs). 65
  • 66. Encapsulation : définition Définition Le terme encapsulation désigne le principe consistant à cacher l’information contenue dans un objet et de ne proposer que des méthodes de modification/accès à ces propriétés (attributs). L’objet est vu de l’extérieur comme une boîte noire ayant certaines propriétés et ayant un comportement spécifié. La manière, dont le comportement a été implémenté, est cachée aux utilisateurs de l’objet. Intérêt Protéger la structure interne de l’objet contre toute manipulation non contrôlée, produisant une incohérence. 66
  • 67. Encapsulation : exemple  De point de vue utilisation, un objet est une boite noire qui offre un certain nombre de méthodes permettant d’interagir avec lui.  Peu importe comment il est construit en interne, la seule chose nécessaire pour pouvoir utiliser un objet est de savoir ce qu’il peut faire et surtout comment lui demander. Exemple: un poste de TV est une « boite noire » ayant pour interface: un écran, des HP et une télécommande. Pour changer de chaine, il suffit de changerChaine(int chaine) Peu importe ce qui se passe réellement en interne. 67
  • 68. Encapsulation : en pratique L’encapsulation nécessite la spécification des parties publics et privées de l’objet. élément public: correspond à la partie visible de l’objet depuis l’extérieur. c’est un ensemble de méthodes utilisables par d’autres objets (environnement). élément privé: correspond à la partie non visible de l’objet. Il est constitué des éléments de l’objet visibles uniquement de l’intérieur de l’objet et de la définition des méthodes. 68
  • 69. L’encapsulation: à retenir  C’est un mécanisme fondamental de la POO.  Un utilisateur peut manipuler les données à l’aide des méthodes.  Il existe 3 niveaux d’accès: Public, Privé, Protégé:  Public: accessible par tout le monde  Private : uniquement manipulable par l’objet lui-même.  Protégé: manipulable par l’objet lui-même & les enfants. 69
  • 70. 70 L’héritage8  L'héritage est un mécanisme qui facilite la réutilisation du code et la gestion de son évolution. Elle définit une relation entre deux classes :  Une classe mère ou super classe  Une classe fille ou sous classe qui hérite de sa classe mère  Les objets d'une classe fille ont accès aux données et aux méthodes de la classe parent et peuvent les étendre (c-à-d peuvent avoir des attributs et des méthodes qui leur sont propres).  Les sous classes peuvent redéfinir les variables et les méthodes héritées.  Les méthodes des classes filles sont redéfinies avec le même nom, les mêmes types et le même nombre d'arguments.
  • 71. L’héritage Classe de base (classe mère ou super classe) Classe dérivée (classe fille ou sous classe ) Relation d’héritage : Classe B "EST UN" Classe A Exemple: un avion est un véhicule Classe A Classe B 71
  • 72. L’héritage Relation d’héritage Classe B "EST UN" Classe A Un chat EST UN animal Une moto EST UN véhicule Une décapotable EST UNe voiture 72
  • 73. L’héritage Une classe fille peut accéder uniquement aux données publiques et protégées 73
  • 74. L’héritage  Java permet à une classe de s’élargir (extend) relativement à une seule autre classe.  Cette restriction est appelée héritage simple.  Certains langages permettent de définir une classe à partir de plusieurs autres, c’est l’héritage multiple qui n’existe pas dans Java. héritage simple héritage multiple 74
  • 75. L’héritage: exemple Une personne a un nom, un prénom, un numéro de Sécurité Sociale. Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale, et une note. Un professeur a un nom, un prénom, un numéro de Sécurité Sociale, et une matière. Quels sont les propriétés communes aux 3 classes ? 75
  • 76. L’héritage: exemple Une personne a un nom, un prénom, un numéro de Sécurité Sociale. Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale, et une note. Un professeur a un nom, un prénom, un numéro de Sécurité Sociale, et une matière. propriétés communes aux 3 classes en rouge 76
  • 77. L’héritage: exemple La classe Professeur et La classe Etudiant pourront les utiliser par le biais de l’héritage. On peut centraliser le nom, le prénom, le numéro de Sécurité Sociale au sein d’une classe Personne. 77
  • 78. L’héritage: exemple Un professeur est une personne. Un étudiant est une personne. Il s’agit de la relation « est un » 78
  • 79. L’héritage: exemple Sans héritage, on aurait + # Personne #name : String #prenom : String #numSS :String +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int +getPersonne(): void +setPersonne(String f,String n, int s) + # Etudiant -name : String -prenom : String -numSS :String -note : int +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int +getNote):int +setNote(int n):void +getEtudiant(): void +setEtudiant(String f,String n, int s,int n) + # Professeur -name : String -prenom : String -numSS :String - Matiere :String +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int setMatiere(String n) : void +getMatiere):String +getProfesseur(): void +setProfesseur(String f,String n, String m) Quelles sont les propriétés et méthodes identiques? 79
  • 80. L’héritage: exemple Sans héritage, on aurait + # Personne #name : String #prenom : String #numSS :String +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int +getPersonne(): void +setPersonne(String f,String n, int s) + # Etudiant -name : String -prenom : String -numSS :String -note : int +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int +getNote):int +setNote(int n):void +getEtudiant(): void +setEtudiant(String f,String n, int s,int n) + # Professeur -name : String -prenom : String -numSS :String - Matiere :String +getName():String +setName(String n): String +getprenom():String +setprenom(String n): String +setNum(int n) : void +getNum():int setMatiere(String n) : void +getMatiere):String +getProfesseur(): void +setProfesseur(String f,String n, String m) propriétés et méthodes identiques? 80
  • 81. Avec héritage, on aurait N’est-il pas plus simple d’implémenter ce modèle? 81 L’héritage: exemple
  • 82. L’héritage: à retenir  C’est un concept fondamental de la POO  Il offre la possibilité de réutiliser les composants logiciels existants.  Une classe dérivée(=fille) pourra utiliser les méthodes et attributs de la classe mère (=super classe) et pourra ajouter ses propres propriétés. Ce qui offre la possibilité de ne pas repartir de 0 82
  • 83. 83  Une télévision et un écran d'ordinateur sont tous deux des appareils à écran.  Un appareil à écran possède un poids, une longueur de diagonale et il est possible de l'éteindre et de l'allumer.  Une télévision est un tel appareil, possédant également une liste de chaînes mémorisées, une action permettant de mémoriser une chaîne, ainsi que d'autres non précisées ici qui font d'un appareil à écran... une télévision.  Un écran d'ordinateur est également un appareil à écran, mais possédant une résolution actuelle, une liste de résolutions possibles, et une action permettant de changer la résolution actuelle.  La télévision d'un coté, et l'écran d'ordinateur de l'autre sont deux concepts basés sur celui de l'appareil à écran, et lui ajoutant divers éléments qui le rendent particulier. Si je vous dis que j'ai un appareil à écran devant moi, vous pouvez légitimement penser qu'il peut s'agir d'une télévision, d'un écran d'ordinateur, voire d'autre chose... L’héritage: exercice
  • 84. 84  Une télévision et un écran d'ordinateur sont tous deux des appareils à écran.  Un appareil à écran possède un poids, une longueur de diagonale et il est possible de l'éteindre et de l'allumer.  Une télévision est un tel appareil, possédant également une liste de chaînes mémorisées, une action permettant de mémoriser une chaîne, ainsi que d'autres non précisées ici qui font d'un appareil à écran... une télévision.  Un écran d'ordinateur est également un appareil à écran, mais possédant une résolution actuelle, une liste de résolutions possibles, et une action permettant de changer la résolution actuelle.  La télévision d'un coté, et l'écran d'ordinateur de l'autre sont deux concepts basés sur celui de l'appareil à écran, et lui ajoutant divers éléments qui le rendent particulier. Si je vous dis que j'ai un appareil à écran devant moi, vous pouvez légitimement penser qu'il peut s'agir d'une télévision, d'un écran d'ordinateur, voire d'autre chose... L’héritage: exercice
  • 86. 86 Factoriser les éléments communs (attributs, méthodes…) de l’ensemble de classes que vous allez dégager de ce texte L’héritage: exercice  Un compte chèque et un compte épargne sont tous deux des comptes bancaires.  Un compte chèque possède un solde et un montant découvert autorisé qu’il est possible de changer. On peut effectuer des opérations de dépôt et de retrait d’argents. Le retrait n’est autorisé que suivant le découvert.  Un compte épargne possède également un solde. Il est rémunéré selon un taux ce qui génère des intérêts sur lesquels on peut effectuer des opérations de calcul et de crédit.  Un compte épargne est un compte bancaire sur lequel, on peut effectuer également des opérations de dépôt et de retrait d’argents. Il n’y a pas de découvert autorisé pour le retrait d’argent. Le taux d’intérêt peut être changé.
  • 87. 87 L’héritage: exercice  Un compte chèque et un compte épargne sont tous deux des comptes bancaires.  Un compte chèque possède un solde et un montant découvert autorisé qu’il est possible de changer. On peut effectuer des opérations de dépôt et de retrait d’argents. Le retrait n’est autorisé que suivant le découvert.  Un compte épargne possède également un solde. Il est rémunéré selon un taux ce qui génère des intérêts sur lesquels on peut effectuer des opérations de calcul et de crédit.  Un compte épargne est un compte bancaire sur lequel, on peut effectuer également des opérations de dépôt et de retrait d’argents. Il n’y a pas de découvert autorisé pour le retrait d’argent. Le taux d’intérêt peut être changé.
  • 88. 88 Factoriser les éléments communs (attributs, méthodes…) d’un ensemble de classes L’héritage: exercice
  • 90. 90 L’héritage: exercice  Un plan épargne logement est un compte épargne ayant des caractéristiques propres.  Un montant de versement doit se faire sur une durée donnée et pour des périodes bien précises.  Une fois la période écoulée, le montant de prêt peut être calculé et l’opération de retrait peut se faire.  Aucun retrait ne peut s’effectuer avant l’écoulement de la durée fixée.
  • 91. 91 L’héritage: exercice  Un plan épargne logement est un compte épargne ayant des caractéristiques propres.  Un montant de versement doit se faire sur une durée donnée et pour des périodes bien précises.  Une fois la période écoulée, le montant de prêt peut être calculé et l’opération de retrait peut se faire.  Aucun retrait ne peut s’effectuer avant l’écoulement de la durée fixée.
  • 94. 94 Polymorphisme9  Faculté qu'ont des objets différents de réagir différemment en réponse au même message.  Marcher sur la queue d'un chat => il miaule  Marcher sur la queue d'un chien => il aboie  Même nom de fonction, plusieurs implantations: Fonction: opération addition (+) Addition des nombres entiers, 1 + 2 = 3 Addition des nombres complexes, 1 + 2i + 3 + 4i = 4 + 6i
  • 95. 95 Polymorphisme9  Le polymorphisme offre aux objets la possibilité d ’appartenir à plusieurs catégories à la fois  En effet, nous avons certainement tous appris à l'école qu'il était impossible d'additionner des pommes et des oranges  Mais, on peut écrire l ’expression suivante: 3 pommes + 5 oranges = 8 fruits
  • 96. 96 Polymorphisme  Une façon de décrire l'exemple consistant à additionner des pommes et des oranges serait d'imaginer que nous disons pommes et oranges mais que nous manipulons en fait des fruits. Nous pourrions écrire alors la formule correcte : 3 (fruits) pommes + 5 (fruits) oranges --------------------------------------------- = 8 fruits  Cette façon de voir les choses implique que les pommes et les oranges soient "transformées" en fruits préalablement à l'établissement du problème.
  • 97.  Le polymorphisme est un concept extrêmement puissant en POO, il permet de manipuler des objets sans en connaître tout à fait le type tout en se basant sur la relation d’héritage.  Le polymorphisme en Java, se traduit par :  La compatibilité entre un type dérivé et un type ascendant.  La ligature dynamique des méthodes, dans le sens où il permet d’obtenir le comportement adapté à chaque type d’objet, sans avoir besoin de tester sa nature de quelque façon que ce soit.  Le polymorphisme se base sur cette affirmation : un objet a comme type non seulement sa classe mais aussi n’importe quelle classe dérivée. Polymorphisme 97
  • 98. 98 Propriété pour un même message de déclencher des méthodes différentes Feu Voiture Velo changer (Vert) Demarrer() Demarrer() - Débrayer - Passer la première - Accélérer - Embrayer - Pédaler Plusieurs classes peuvent posséder une méthode de même nom. Suivant la nature de l'objet auquel elle doit s'appliquer, on appliquera telle ou telle méthode. Le polymorphisme : consiste donc à appeler la bonne méthode d'après le type de l'objet implémenté. Polymorphisme
  • 99.  Même libellé de la fonction dessiner(). Les fonctions ayant la même sémantique ont le même nom.  Programmation plus souple => ajouter une classe RECTANGLE … Il suffit de le faire et d'écrire la méthode dessiner() dans cette classe.  En programmation procédurale, il faut reprendre le code dessiner() (il faut déjà l'avoir ce qui n'est toujours pas le cas) et l'enrichir (sans le détériorer, histoire de pouvoir toujours dessiner() un cercle par exemple). Polymorphisme: avantages classe CARRE dessiner(); classe CERCLE dessiner(); classe TRIANGLE dessiner(); 99
  • 100. Polymorphisme: à retenir 100  C’est un concept fondamental de la POO  Le polymorphisme traite de la capacité de l'objet à posséder plusieurs formes.  Cette capacité dérive directement du principe d'héritage.  C’est la faculté qu'ont des objets différents de réagir différemment en réponse au même message.  C’est la capacité du système de choisir dynamiquement la méthode qui correspond au type réel de l’objet.