Vous êtes sur la page 1sur 21

Langages orientés objet

Programmation orientée objet en C++


Programme
Les classes et les fonctions membres
Création, initialisation d’un objet
L’héritage simple et multiple
Le polymorphisme
Les patrons
La conception des objets, Relations entre
abstractions de conception d’une application et
entre les classes et objets de sa réalisation
Exercices d’application
08/12/2019 HIMI-Tizi-Ouzou 2
Bibliographie
 Stanley B. Lippman et Josée Lajoie. L'essentiel du
C++. 3ème édition. Vuibert 2000.
 Rensselear Polytechnic Institute. Standard Template
library Reference. 1994.
 Jesse Liberty. C++ Ressources d’experts. Compus
Press. 1999
 www.developper.com
 www.commentcamarche.net
 www.omg.org

08/12/2019 HIMI-Tizi-Ouzou 3
Programmation orientée
objet en C++
Chapitre 0 : Les concepts de base du paradigme
orienté objet
Résumé par : N. TAMANI
Objet, identité, état & comportement
 Objet : Un objet est un élément concret ou abstrait du
monde réel. Il forme une unité atomique composée
d'un état et d'un comportement.
 Identité : construite à partir d'un identifiant issu du
domaine d'étude.
 État : à un instant donné, correspond à une sélection
de valeurs parmi toutes les valeurs possibles des
différents attributs de l'objet.
 Comportement : qui regroupe toutes les compétences
de l'objet en termes d'opérations exécutées suite à un
message envoyé par un autre objet.
08/12/2019 HIMI-Tizi-Ouzou 5
Objet, identité, état & comportement
 Exemple : soit l’objet étudiant
 L’identité : numéro de carte d’étudiant;
 État :
• Nom : Ali
• Prénom : Yacine
• Adresse : Tizi-Ouzou
• …
 Comportement :
• inscrire ()
• Réinscrire ()
• Passer_examen ()
• …
08/12/2019 HIMI-Tizi-Ouzou 6
Classe, attributs & opérations
 Classe : le domaine de définition d'un ensemble
d'objets. Chaque objet appartient à une classe.
 La création d'objet à partir de leur classe se fait par le
processus d'instanciation.
 La classe porte un nom issu du domaine de l'application, et
éventuellement un stéréotype qui décrit explicitement son
rôle dans le système.
 Attributs ou données membres : les informations
caractérisant la classe; représentant l’état d’un objet;
 Opérations ou fonctions membres : les services ou
responsabilité de la classe; opérations applicables aux
objets.
08/12/2019 HIMI-Tizi-Ouzou 7
Classe, attributs & opérations
 Exemple : soit la classe Etudiant :
 Attributs :
• Numéro_carte
• Nom
• Prénom
• Adresse
• …
 Méthodes :
• inscrire()
• Se_réinscrire()
• Passer_examen ();
• …

08/12/2019 HIMI-Tizi-Ouzou 8
Encapsulation et masquage d’information

 Encapsulation : rassembler les données et les


méthodes au sein d’une structure en cachant
l’implémentation de l’objet;
Accès exclusif aux données de l’objet par les services
proposés : notion d’interface;
But : Assurer l’intégrité des données d’un objet;
 Masquage d’information : niveaux de visibilité
• Public : l'élément est visible à tous les clients de la classe;
• Protégé : l’élément est visible pour les sous-classes de la
classe uniquement;
• Privé : l’élément est visible à la classe seule et à ses amies.

08/12/2019 HIMI-Tizi-Ouzou 9
Relations entre classes : l’association
 Association : est une relation qui exprime une
connexion sémantique bidirectionnelle et symétrique
entre classes.
• L'extrémité d'une association est appelée rôle.
 Exemple : étudiant s’inscrit en formation

Étudiant Formation
S’inscrire >

08/12/2019 HIMI-Tizi-Ouzou 10
Relations entre classes : l’association
 Une information de multiplicité est précisée pour chaque rôle
dans l’association;
 Multiplicité : précise le nombre d’instances (objets) qui
participent à l’association;
 Les valeurs possibles :
1 Un et un seul objet;
0..1 Un objet au plus;
M..N De M à N objets (valeurs entières)
* Zéro ou plusieurs objets
0..* Zéro ou plusieurs objets
1..* Au moins un objet

08/12/2019 HIMI-Tizi-Ouzou 11
Relations entre classes : l’association
 Exemple : étudiant s’inscrit en formation
• Du côté « étudiant », on fixe un objet « formation » puis on
détermine le nombre d’objets « étudiant » qui peuvent lui
être associés  * ou 0..*
• Du côté « formation », on fixe un objet « étudiant » puis on
détermine le nombre d’objets « formation » qui peuvent lui
être associés  1

Étudiant Formation
* 1
S’inscrire >

08/12/2019 HIMI-Tizi-Ouzou 12
Relations entre classes : la dépendance
 Dépendance : est une relation d'utilisation unidirectionnelle
entre éléments du même modèle.
 La dépendance n’est pas forcément un lien entre objets;
 La dépendance est limitée dans le temps;
 Un élément A dépend d'un élément B, lorsque A utilise des
services de B.
 Exemple : un objet « étudiant » nécessite l’objet
« print_manager » pour imprimer la carte d’étudiant;
Étudiant Printer_manager

08/12/2019 HIMI-Tizi-Ouzou 13
Relations entre classes : l’agrégation
 Agrégation : représente une connexion
bidirectionnelle dissymétrique. Elle permet de
représenter les relations de type maître/esclave, tout
et parties ou composé et composants.
 Exemple : un objet « ordinateur » est composé d’un
objet « UC », d’un objet « DD » et d’un objet
« périphérique »
UC
Ordinateur
DD

Périph.

08/12/2019 HIMI-Tizi-Ouzou 14
Relations entre classes :
généralisation/spécialisation
 Généralisation/spécialisation : désignent une relation
de classification hiérarchique entre classes.
 La généralisation : consiste à factoriser les éléments
communs (attributs, opérations et contraintes) d'un
ensemble de classes dans une classe plus générale
appelée superclasse.
 La spécialisation : permet de capturer les
particularités d'un ensemble d'objets appartenant à des
classes identifiées. Ces particularités communes sont
représentées par une nouvelle classe, sous-classe des
classes existantes.
08/12/2019 HIMI-Tizi-Ouzou 15
Relations entre classes :
généralisation/spécialisation
 Exemple de généralisation/spécialisation : un étudiant
est une personne : Personne
Num_SS
spécialisation

Nom

Généralisation
Prénom
Adresse

Étudiant
Num_carte
Année_étude

08/12/2019 HIMI-Tizi-Ouzou 16
Le polymorphisme
 Polymorphisme : mot grec qui signifie « qui peut
prendre plusieurs formes ».
 Caractéristique d’un même objet à se présenter sous
plusieurs formes selon le contexte;
 Exemple : l’étudiant « Ali » se présente en tant qu’un
objet étudiant au sein de son établissement et en tant
qu’une personne à l’extérieur;

08/12/2019 HIMI-Tizi-Ouzou 17
Le polymorphisme
 Le polymorphisme est relatif aux méthodes des
objets.
 Polymorphisme d’opération;

 On distingue généralement trois types de


polymorphisme :
• Le polymorphisme ad hoc (surcharge ou overloading)
• Le polymorphisme paramétrique (généricité ou template)
• Le polymorphisme d'héritage (redéfinition ou overriding)

08/12/2019 HIMI-Tizi-Ouzou 18
Méthode Orientée Objet
 Appréhender le problème à résoudre selon le
paradigme Objet;
 Concevoir la solution Objet sans rentrer dans les
spécificité d’un langage  le modèle objet;
 Représenter la solution sous forme graphique
(généralement l’UML) compréhensible par tous les
acteurs d’un projet logiciel;
 Le concepteur Orienté Objet n’est pas forcément un
programmeur.
 Exemple : Grady Booch, OOD, Rational Process, etc.

08/12/2019 HIMI-Tizi-Ouzou 19
Langage Orienté Objet
 Outil d’implémentation d’un modèle objet;
 Chaque langage possède ses spécificités
d’implémentation du paradigme Objet;
 Existence d’outils d’automatisation du processus
d’implémentation : Rational Rose basé sur l’UML;
 Exemple : C++, JAVA, etc.
 Un programmeur n’est pas forcément un concepteur
objet;

08/12/2019 HIMI-Tizi-Ouzou 20
Programmation Orientée Objet
 La programmation orientée objet implique :
1. Une conception d’un modèle objet à l’aide d’une
méthode;
2. Implémentation à l’aide d’un langage orienté objet;

 Objectif du cours : avoir un aperçu de la


l’implémentation du paradigme Objet dans le
langage C++

08/12/2019 HIMI-Tizi-Ouzou 21

Vous aimerez peut-être aussi