Introduction Aux Concepts Orientés objets-ESTAD
Introduction Aux Concepts Orientés objets-ESTAD
Introduction Aux Concepts Orientés objets-ESTAD
orientés objets
Étienne G. Tajeuna
gael.tajeuna@estad.net
ESTAD
École Supérieure des Techniques Avancées pour le Développement
Sommaire
1. Définition et origine
2. Introduction à UML
3. Concepts de base
6. Concepts avancés
1. Définition et origine :
Définitions
• La programmation orientée objet (POO) est un modèle de
programmation informatique qui met en œuvre une conception
basée sur les objets.
• Plus tard dans les années 1980, on note une forte croissance des langages à
objets : Eiffel, C++, ou encore Objective C (une extension objet du C utilisé par le
système d'exploitation d’Apple).
• Cette croissance atteint son apogée dans les années 1990 avec la création du
langage Java par la société Sun Microsystems (racheté depuis par Oracle).
• Java étant libre (open source), Microsoft dans les années 2000 décide de sortir son
propre framework, le .NET et son propre langage full orienté objet, C#, pour éviter de
voir le marché des systèmes d'exploitation pour ordinateur l’échapper au profit de
l’écosystème open source, porté désormais par Java.
1. Définition et origine :
Origine
• De nos jours, les principes de la POO sont utilisés dans plusieurs autres langages :
PHP (à partir de la version 5), Python, etc…
• Les classes
o Son nom
o Ses attributs
o Ses méthodes
2. Introduction à l'UML
Diagramme de classes -- Nom d'une classe
• Le nom d'une classe est basé sur les mêmes standards de nommage
que la POO, il peut néanmoins être représenté de différentes
manières.
• On écrira d’abord la visibilité de la méthode, suivi du nom de la méthode, puis des arguments en
paramètre, et enfin le type de retour de la méthode si celle-ci retourne quelque chose.
o Les arguments sont décrits entre les parenthèses, comme en programmation. Le nom des arguments doit
respecter les conventions de nommage en vigueur. Chaque argument est séparé par une virgule. Le nom d’un
argument est suivi de “:” puis de son type.
o Le type de retour est optionnel si la méthode ne retourne rien. Il peut-être scalaire (int, float, char, etc…), ou
bien objet (String, DateTime, etc…).
o La visibilité des attributs est utilisée pour les méthodes, à savoir les 4 symboles “+”, “–”, “#”, et “~”.
2. Introduction à l'UML
Diagramme de classes -- Méthode(s) d'une classe
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Héritage
L’héritage en UML est représenté par La représentation de l’héritage peut-être
une flèche, dont l’extrémité est représentée simplifiée visuellement si plusieurs classes
par un triangle pointant la classe “parent”. “enfant” étendent la même classe “parent”.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Association
Une association est un lien entre deux Le lien ici pourrait-être nommé pour
classes. donner un sens à la relation des deux
Ce lien peut être non orienté classes.
Traite la demande de
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Association
Une association non-orientée est aussi vue comme une association bidirectionnelle.
Dans certain cas, cette association pourrait être unidirectionnelle.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Association
• L'agrégation ajoute une logique plus forte sur l'association des classes.
• Cette relation a pour but de définir qu’un objet contient d’autres objets.
• Une agrégation est représentée en UML par un trait, dont une des extrémités est
un losange vide, pointant vers la classe qui possède l’autre.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Composition
• Une composition est exactement la même chose qu’une agrégation, à une
exception près.
o Dans le cas d’une agrégation, la suppression de l’objet qui contient l’autre
n’entraîne pas automatiquement la suppression du second.
o Dans le cas d’une composition, la suppression du premier entraîne la
suppression du second. L’inverse n’est pas vrai.
• La représentation en UML d’une composition est la même que pour une
agrégation, sauf que le losange doit être plein.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Dépendance
• Une dépendance permet de définir qu’une classe ne peut pas fonctionner sans une
autre.
• Illustration:
o Supposons une classe Calculatrice, permettant de faire des calculs complexes
(prendre une expression scientifique, et déterminer le résultat, peu importe le
nombre d’opérations qui la composent).
o Nous disposons aussi d’une classe Math permettant de faire des calculs basiques
(addition, soustraction, etc…).
o La classe Calculatrice aura besoin de la classe Math pour fonctionner.
o Si on supprime la classe Math, la classe Calculatrice ne pourra plus fonctionner.
o La classe Math est totalement indépendante, mais la classe Calculatrice,
elle, dépend de la classe Math pour fonctionner.
• Une dépendance est représentée par une flèche semblable à une association, mais avec
des pointillés.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Dépendance
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Package
• De manière générale, un diagramme de classe représente une partie spécifique d’une
application, rarement l’application dans son intégralité.
• Dans le cas où l'on aurait beaucoup trop de classes, on préfère généralement
faire plusieurs diagrammes de classe, représentant chacun une partie de l’application
nécessitant d’être détaillée.
• Les packages en programmation, peuvent être représentés sur un diagramme de classe.
2. Introduction à l'UML
Diagramme de classes -- Les types de relation -- Package
• la maintenance,
• la réutilisabilité,