Vous êtes sur la page 1sur 48

16/02/2023

Programmation Orientée Objet

POO
Prof. Hakim ALLALI
Master ATSII Fev 2023

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 et Modélisation UML

7
• Caractéristiques de la POO : Encapsulation

8
• Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

haaaaaa 1
16/02/2023

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 et Modélisation UML

7 • Caractéristiques de la POO : Encapsulation

8 • Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

1
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 ?

haaaaaa 2
16/02/2023

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, une capacité de stockage, etc.)

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 et Modélisation UML

7
• Caractéristiques de la POO : Encapsulation

8
• Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

haaaaaa 3
16/02/2023

2
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
Programmation orientée objet

 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é.

haaaaaa 4
16/02/2023

2
Programmation orientée objet

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.

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 et Modélisation UML

7
• Caractéristiques de la POO : Encapsulation

8
• Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

10

haaaaaa 5
16/02/2023

3
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.

11

3 POO vs PPS (Prog. Procédurale Structurée)

 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.

12

haaaaaa 6
16/02/2023

3 POO vs PPS

POO PPS

Principe : afin d’établir de Principe : On sépare les


façon stable et robuste données des moyens de
l’architecture d’un système, il traitement de ces
semble raisonnable de données.
s’organiser autour des données
manipulées.
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.
13

Exemple: Gestion d'une bibliothèque

 Approche procédurale : Gérer les emprunts


de livres
Que doit faire mon programme ?

Gérer le stock

 Approche orientée objet :


De quoi doit être composé mon programme ?

Cours C++
RITCHIE
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice

Cours Java Ali IDRISSI


Hamza KARIMI Lecteur
DELANNOY Bibliothécaire

14

haaaaaa 7
16/02/2023

Programmation: diverses approches

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.
16

haaaaaa 8
16/02/2023

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. Notes V10, 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

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

18

haaaaaa 9
16/02/2023

4
Avantages de la POO

 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.

19

4
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.

20

haaaaaa 10
16/02/2023

PPS vs POO

21

Les grands principes de la POO

 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

22

haaaaaa 11
16/02/2023

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 et Modélisation UML

7 • Caractéristiques de la POO : Encapsulation

8 • Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

23

Les grands principes de la POO

24

haaaaaa 12
16/02/2023

5
Notion d’objet

 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.

25

Exemple: Gestion d'une bibliothèque

 Approche procédurale : Gérer les emprunts


de livres
Que doit faire mon programme ?

Gérer le stock

 Approche orientée objet :


De quoi doit être composé mon programme ?

Cours C++
RITCHIE
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice

Cours Java Ali IDRISSI


Hamza KARIMI Lecteur
DELANNOY Bibliothécaire

26

haaaaaa 13
16/02/2023

Exemple1: un livre à la bibliothèque est caractérisé par:


 Un titre
 Un auteur
 Un numéro d’inventaire
 Un numéro de classement
 Une quantité (le nombre de livres disponibles à la bibliothèque)

Un objet de type Livre est constitué d’attributs qui caractérisent


la structure de cet objet:

private String titre;


private String auteur;
private int numInv;
private String numClas;
private static int qte;
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
27

Exemple 2: Un objet voiture est caractérisé par:

28

haaaaaa 14
16/02/2023

Vocabulaire à retenir

 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/traitements).

 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.

29

5
Notion d’objet: 3 caractéristiques
 Un objet est caractérisé par :

Son identité : Comment l’objet se distingue-t-il des autres qui


peuvent avoir le même comportement et le même état ?

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 comportement : que pouvez-vous faire avec cet objet, ou


quelles méthodes pouvez-vous lui appliquer ?

30

haaaaaa 15
16/02/2023

5
Notion d’objet: 3 caractéristiques

1) 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é.

31

5
Notion d’objet: 3 caractéristiques
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.

Les états de l’objet "Télévision":


Allumé=ok chaîne courante=CNN, volume de son=4
32

haaaaaa 16
16/02/2023

Etat de l’objet
Il est défini à l’aide d’attributs (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 de l’objet voiture:v1 de type Voiture est caractérisé par les
attributs:
marque = toyota
modele = yaris
couleur = rouge

Les valeurs des attributs caractérisent l’état de l’objet

voiture: v1 Nom de l’objet (identifiant)

marque = toyota
modele = yaris Description des attributs
couleur = rouge
33

5
Notion d’objet: 3 caractéristiques
3) son comportement

 Quelles sont les méthodes qu’on peut lui


appliquer?
 Le comportement détermine comment
l’objet agit ou réagit
 Le comportement visible d’un objet est
son interface (ensemble d’opérations).

Exemple: Les comportements de l’objet "Télévision" :


allumer, changer de chaîne, changer de volume du son,
éteindre

34

haaaaaa 17
16/02/2023

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
Exemple:
demarrer()
maVoiture moteur
35

Comportement de l’objet: Envoi de message

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.

envoie de message

36

haaaaaa 18
16/02/2023

Comportement de l’objet: Envoi de message

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

37

Changement d’état et méthodes

38

haaaaaa 19
16/02/2023

Changement d’état et méthodes

39

3 caractéristiques d’un objet

40

haaaaaa 20
16/02/2023

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 et Modélisation UML

7 • Caractéristiques de la POO : Encapsulation

8 • Caractéristiques de la POO : Héritage

9
• Caractéristiques de la POO : Polymorphisme

41

Les grands principes de la POO

42

haaaaaa 21
16/02/2023

6
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 Lecteur
Classe Livre Classe Employé
Classe Journal

Cours C++
RITCHIE
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice

Cours Java Ali IDRISSI


Hamza KARIMI Lecteur
DELANNOY Bibliothécaire

43

Notion de class

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

Cours C++
RITCHIE
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice
Ali IDRISSI
Lecteur
Cours Java Hamza KARIMI
DELANNOY Bibliothécaire

44

haaaaaa 22
16/02/2023

Notion de class

Classe Livre Classe Lecteur


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

-Nom=ALAMI
Titre = Cours C++ - prénom = Asmae
Auteur = Richie -Statut = directrice
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice
Titre = Cours Java Ali IDRISSI
Lecteur
Auteur = Delannoy Hamza KARIMI
Bibliothécaire

45

Notion de class
Classe Lecteur
Classe Journal -nom, prénom, statut
-titre + ListeDeLivresEmpruntés()

Classe Livre Classe Employé


-titre, auteur -nom, prénom, statut
+Date emprunter(Lecteur)

Cours C++
RITCHIE
The independent Asmae ALAMI Latifa KAMAL
Directrice Lectrice

Cours Java Ali IDRISSI


Hamza KARIMI Lecteur
DELANNOY Bibliothécaire

46

haaaaaa 23
16/02/2023

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 attributs 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êmes 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éfinit un
algorithme
 Les relations entre les classes reflètent la décomposition du
programme

47

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


comportements): définissent 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 tout ce qu’il est possible de
"faire" avec un objet).

48

haaaaaa 24
16/02/2023

Notion de class: Vocabulaire

49

Notion de class: UML


(UNIFIED MODELING LANGUAGE )

 Langage visuel unifié


 Tout le monde doit parler le même langage

 Langage pour spécifier


 Executable-UML
 Supposé précis et non ambigu

 Des liens vers plusieurs langages de prog.


 Java, C++, VB
 RDMS ou OODMS
 Génération de code et reverse engineering

50

haaaaaa 25
16/02/2023

Notion de class: UML (Historique)


Années 80:
Méthodes pour organiser la programmation fonctionnelle (Merise)
Séparation des données et des traitements

Début des années 90:


Apparition de la POO: nécessite d’une méthodologie adaptée
Apparition de plus de 50 méthodes entre 1990 et 1995

1994:
Consensus sur 3 méthodes
• OMT (Object-Modeling Technique): représentation graphique des
aspects statiques, dynamiques et fonctionnels d’un système
• OOD (Object-Oriented Design) : concept de package
• OOSE (Object-Oriented Software Engineering) : description des
besoins de l’utilisateur

51

Notion de class: UML (domaines d’utilisation)


 Consensus entre OMT, OOD, OOSE pour créer une méthode commune:
 UML : Unified Modeling Language (Langage de Modélisation Unifié)

 1997: Définition de la norme UML comme standard de modélisation des


systèmes d’information objet par l’OMG (Object Management Group)

 UML est employé dans l’ensemble des secteurs du développement


informatique:
 Systèmes d’information
 Télécommunication, défense
 Transport, aéronautique, aérospatial
 Domaines scientifiques

Mais pas seulement: on peut modéliser des comportement mécaniques,


humains, etc.

Les Use-case sont la base


52

haaaaaa 26
16/02/2023

Notion de class: UML (Diagrammes)


 Il existe deux grands types de diagrammes ULM :
les diagrammes de structure et les diagrammes de comportement
(ces catégories sont elles-mêmes divisées en plusieurs sous-catégories).

 La dernière version est l’UML2.5 (12/2017) définit 14 diagrammes:

•Diagrammes de Paquetage •Diagrammes d’Activité


• •
Classe ou Diagrammes Structurels Diagrammes de StateMachine
• •
Diagrammes d’Objets Diagrammes de Communication
• •
Diagrammes de Structure Composites Diagrammes de Séquence
• •
Diagrammes de Composants Diagrammes de Temps
• •
Diagrammes de Déploiement Diagrammes de Vue d’Ensemble
• d’Interaction
Diagrammes de Cas d’Utilisation •
Profil Diagrammes

53

Notion de class: UML (Diagrammes)

54

haaaaaa 27
16/02/2023

Notion de class: exemple1


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: Unified Modeling Language)

55

Classe Véhicule : modélisation UML


UML (Unified Modeling Language)

aux

- : private
# : protected
+ : public
$ (ou souligné) : static
56

haaaaaa 28
16/02/2023

Notion de class: exemple2


Une classe est composée de plusieurs membres dont chacun est soit :
 un attribut : variable typée
 une méthode : ensemble d'instructions de traitement

CompteBancaire class CompteBancaire {


private String proprietaire;
- proprietaire : String private double solde;
Attributs
- solde : double
public double getSolde() {
+ getSolde() : double
return solde;
+ crediter(double mt) : void }
Méthodes
public void crediter(double mt)
Modélisation UML de la classe {
CompteBancaire solde = solde + mt;
}
}

Code Java de la classe CompteBancaire

57

Modélisation UML de la classe


Etudiant

Les différents types de notations

58

haaaaaa 29
16/02/2023

Classe CompteBancaire: instanciation

Modélisation UML de l’instanciation

59

Notion de class: instanciation

Hamza Hind
12 17
15
instances Hamza et Hind).
18

60

haaaaaa 30
16/02/2023

Notion de class: instanciation

61

Classe Television: instanciation

Une classe peut être réutilisée pour instancier


plusieurs objets

T1

T2

T3

62

haaaaaa 31
16/02/2023

Classe Television
Code Java de la classe Television Modélisation UML de la classe
Television
public class Television {
Television
// Attributs
private int volume; - volume : int
- chaine : int
private int chaine; - estAllume: boolean

private boolean estAllume; + allumer() : void


+ eteindre() : void
+ augmenterVolume (int vol) : void
// Méthodes + reduireVolume (int vol) : void
+ changerChaineer(int ch) : void
public void allumer() { … }
public void eteindre() { … }
public void augmenterVolume(int v) { … }
public void reduireVolume() { int v}
public void changerChaine(int c) { … }
}
NB. Par convention, les noms des classes commencent par majuscule
ceux des attributs/ méthodes commencent par minuscule

63

Simplifions les classes ….


Parlons en IMAGES

Qu’est ce qu’une classe ?


C’est un modèle de quelque chose d’abstrait.
C’est le moule qui permet de créer des objets.

64

haaaaaa 32
16/02/2023

Qu’est ce qu’une classe ?


Eleve
Un prénom Manger
Un nom Boire
Une date de naissance Parler
Une adresse Dormir
Un lieu de naissance Rougir

Il a des attributs et des méthodes

65

Qu’est ce qu’une classe ?

Un prénom Manger
Un nom Boire
Une date de naissance Parler
Une adresse Dormir
Un lieu de naissance Rougir

Ce sont les actions


Ce sont les propriétés
qu’il peut réaliser

Il a des attributs et des méthodes


66

haaaaaa 33
16/02/2023

Qu’est ce qu’une classe ?

public class Eleve { On donne le nom de la classe


private int id;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbEleve =0;

67

Qu’est ce qu’une classe ?


public class Eleve {

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbEleve =0 ;

Ce sont les attributs.

68

haaaaaa 34
16/02/2023

Qu’est ce qu’une classe ?


public class Eleve {

private int id ; On les appelle variables


private String nom;
private String prenom;
d’instance
private String dateNaissance;
private String lieudeNaissance;

public static int nbEleve =0 ;

Elles sont communes à toutes les instances.


Elles sont accessibles uniquement par le biais d’un objet.

69

Qu’est ce qu’une classe ?


public class Eleve {

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbEleve =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.

70

haaaaaa 35
16/02/2023

Notations UML de la classe « Voiture »

- : private
# : protected
UML:Unifed Modeling Language + : public
$ (ou souligné) : static

Codage de la classe « Voiture »

haaaaaa 36
16/02/2023

Exemple: classe Compte


public class Compte {
// Attributs
private int code;
private float solde;
// Constructeur
public Compte(int c,float s){
code=c;
Compte
solde=s;
- code : int }
- solde : float // Méthode pour verser un montant
public void verser(float mt){
+ Compte(int code, float solde)
solde +=mt;
+ verser(float mt):void }
+ retirer(float mt):void // Méthode pour retirer un montant
public void retirer(float mt){
+ toString():String
solde -=mt;
}
// Une méthode qui retourne l'état du compte
public String toString(){
return("Code="+code+" Solde="+solde);
}
}
public afficherEtatCompte{System.out.println("Code="+code+" Solde="+solde)};

Simplifions les objets ….


Parlons en IMAGES

Qu’est ce qu’un objet ?

Un objet est l’instance d’une classe

74

haaaaaa 37
16/02/2023

Qu’est ce qu’un objet?


un objet instancié à partir de la classe Eleve va disposer de
toutes les propriétés et méthodes définies dans la classe Eleve.

Eleve Classe

Objet1 Objet2
Eleve01 Eleve02

Id=01 Id=02
nom=Karimi nom=Hasnaoui
prenom=Hasna prenom=Sara
dateNaissance=01/12/2010 dateNaissance=01/02/2015
lieudeNaissance=Settat lieudeNaissance=Casa
nbEleve=01 nbEleve=02

Eleve est un modèle (classe)


Tandis que Hasna et Sara sont des instances (objets)
Ils ont été instanciés à partir d’un modèle (classe)
75

Notions d’objet & classe

76

haaaaaa 38
16/02/2023

Notions d’objet & classe


 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.

Recette
……..
……..
………
………

77

Notations UML de la classe « Voiture »

- : private
# : protected
UML:Unifed Modeling Language + : public
$ (ou souligné) : static

haaaaaa 39
16/02/2023

Objet : Notations UML

Etats des objets instanciés

haaaaaa 40
16/02/2023

Constructeur de « Voiture »

Construire une voiture de 7CV

haaaaaa 41
16/02/2023

Classe Point: instances p1 et p2

83

Structure des objets

haaaaaa 42
16/02/2023

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.

85

86

haaaaaa 43
16/02/2023

 La POO consiste à programmer en utilisant des objets.


 Un objet modélise un élément du domaine étudié
(exemples : un compte bancaire, une voiture, un étudiant,
etc.).
En résumé…
 Un objet est une instance de classe. Une classe est un type
abstrait, un objet est un exemplaire concret de cette classe.
 Une classe regroupe des informations et des actions.
 Les informations sont stockées sous la forme de champs. Les
champs décrivent l'état d'un objet.
 Les actions réalisables sur un objet sont représentées par
des méthodes. Elles expriment ce que les objets peuvent
faire, leur comportement.
 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.

Les informations stockées par un objet peuvent être appelées


champs, attributs ou encore propriétés. 87

EXERCICES A FAIRE
Le nom du fichier pdf doit être enregistré sous cette forme
ATSII23_TD1C_Nom1_Nom2

88

haaaaaa 44
16/02/2023

Analyse d’un problème en utilisant


l’approche OO

Exercice:
Une société de textile vend des chemises par catalogue.
On veut développer un programme pour cette société.
On sait qu’une chemise possède les caractéristiques suivantes:

Chaque chemise:
• possède un identifiant- code à barre
• est disponible en plusieurs coloris– bleu, gris, etc
• est disponible en plusieurs tailles
• a un prix
• a une description – type du tissu, style, etc
• quantité dans le stock

On peut ajouter ou diminuer des chemises du stock.


On affiche les informations de chaque chemise

89

Exercice à faire : Classe Chemise

public class Chemise{ Chemise


private int id;
private String couleur; - id : int
- couleur : String
private float prix; - taille : String
private String description; - prix : float
- quantité : int
private int quantite; - description : String
public void ajouterChemise (int nombre) {
+ ajouterChemise (int nbr) : void
quantite += nombre; + diminuerChemise (int nbr) : void
} + afficherInfoChemise() : void

public void diminuerChemise (int nombre) {


quantite - = nombre;
}

public void afficherInfoChemise() {


System.out.println(‘’info: ’’+id);
}
}

haaaaaa 45
16/02/2023

Classe et objet Java


Plan de construction

Une classe n'est pas un objet. Une classe est un patron d'objet.

Classe « Chemise »

Objet 1 Objet 2
Id: 101 Id: 201
Prix: 20$ Prix: 30$
Taille: M Taille: S
Couleur: Bleu Couleur: Rouge
Quantite: 200 Quantite: 180

91

Exercice à faire : Classe Voiture


Définir une classe représentant des voitures.
 Les états des objets voitures doivent décrire
 démarrée ou non,
 position de boite de vitesse,
 vitesse…
 puissance, …
 Les comportements d'une voiture incluent:
 Démarrer, arrêter
 Changer boite de vitesse
 Accélérer,
 Tourner,
public class Voiture {
private boolean estDemarre; Voiture

private int posBoiteVitesse; - estDemarre : boolean


- posBoiteVitesse : int
private int vitesse; - vitesse: int
- puissance : int
private int puissance;
+ demarrer() : void
+ arreter() : void
public void demarrer() { … } + setPosBoiteVitesse (int pos) : void
+ accelerer (int v) : void
public void arreter() { … } + tourner(int degre) : void

public void setPosBoiteVitesse(int pos) { … }


public void accelerer(int v) { … }
public void tourner(int degre) { … }
} 92

haaaaaa 46
16/02/2023

Exercice à faire : Classe Voiture

Pour la création d’une classe voiture, donnez des


exemples d’attributs et de méthodes de cette classe.

93

Classe Voiture
public class Voiture{
private boolean estDemarree;
private String couleur;
private qteCarburant;
private int puissance;
private int position;

public void ajouterCarburant (int qte) {


qteCarburant += qte;
}
Voiture
public void avancer (int distance) { - estDemarree : boolean
- couleur : String
if(estDemarree == true) - qteCarburant : int
position + = distance; - puissance : int
} - position : int

+ ajouterCarburant (int qte) : void


public void afficherInfoVoiture() { + avancer (int distance) : void
+ reculer (int distance) : void
System.out.println(‘’info: ’’+id); + afficherInfoVoiture() : void

}
}

haaaaaa 47
16/02/2023

Exercice à faire : Classe Voiture

95

Exercice à faire : Classe Voiture


Voiture
- id : int
- couleur : char
- description : String
- prix : float
- nbreJourLocation : int

+ augmenterNbJourLocation (int nbr) : void


+ dimuerNbJourLocation : void
+ afficherInfoVoiture() : void

96

haaaaaa 48

Vous aimerez peut-être aussi