POO - Chapitre 1

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 19

POO

Chapitre 1: Introduction à la
programmation orientée objet
Mme Mouna JARRAYA
Ingénieur en Génie Logiciel
Docteur en Informatique
E-mail:
jarrayamouna@gmail.com

1
Plan du chapitre
Introduction

De la programmation structurée à l approche orientée objet

Les concepts objet

Avantages de la POO

2
Introduction
Un peu d'histoire :

 1967 : Simula, 1er langage de programmation à implémenter le


concept de type abstrait à l'aide de classes

 1976 : Smalltalk implémente les concepts fondateurs de l'approche


objet (encapsulation, agrégation, héritage) à l'aide de :
• Classes
• associations entre classes
• hiérarchies de classes
• messages entre objets

 1980 : le 1er compilateur C++. C++ est normalisé par l'ANSI et de


nombreux langages orientés objets académiques ont étayés les
concepts objets : Eiffel, Objective C, Loops, java, …

3
De la programmation structurée à l’approche
orientée objet
Méthodes fonctionnelles ou structurées: Ce que le système
fait

 Une méthode de décomposition basée uniquement sur ce que le


système fait,(les fonctions du système). Les fonctions sont
identifiées puis décomposées en sous-fonctions, et ainsi de suite
jusqu’à l’obtention d’éléments simples programmables.

 On s’intéresse aux fonctions puis aux données manipulées


par les fonctions.

 L’architecture du système montre finalement un système unique


4
avec une architecture hiérarchique des fonctions.
De la programmation structurée à l’approche
orientée objet
Approche objet: Ce que le système est
 Ce sont les objets qui interviennent dans le système. Par exemple
des utilisateurs, des produits, des voitures, etc. Un objet correspond
en informatique à une donnée de type « structure ».

 On s’intéresse donc à à un ensemble de données formant un objet


(par exemple le nom, le prénom, la date de naissance l’adresse mail
d’un utilisateur) puis aux fonctions au sens de la programmation
procédurale associées à ces objets (on les appelle des « méthodes».

 Chaque objet est un sous-système dans le système, portant ses


données et ses méthodes de façon indépendante du système
complet alors qu’en programmation procédurale classiques les
fonctions dépendent très vite des objets du système.

 C’est une méthode systémique : les objets collaborent entre eux


pour constituer le système. C’est ce qu’on appelle la « synergie »
entre les objets. On peut en rajouter ou en supprimer sans perturber
5
les collaborations entre les objets non concernés
De la programmation structurée à l’approche
orientée objet
Approche objet: Ce que le système est

 Stabilité de la modélisation par rapport aux entités du monde


réel.

 Construction itérative facilitée par le couplage faible entre les


composants (les sous-systèmes ou les objets).

 Possibilité d’une réutilisation les composants d’un développement


à un autre.

6
De la programmation structurée à l’approche
orientée objet
Approche objet: Exemple

 Programmation d’une application de gestion de comptes


bancaires

 L'application sert à gérer des dépôts/retraits d'argent.

 Le Programmeur ne connaît que les données qui caractérisent les


comptes
• noms des clients
• numéros de comptes
• types de comptes (compte courant, compte épargne etc.)
• soldes des comptes etc.

 La seule chose importante est:


• le dépôt ou le retrait d'argent, pour ce faire, il faut: comprendre
la mécanique qui régit le fonctionnement des comptes.

7
De la programmation structurée à l’approche
orientée objet
Approche objet: Exemple

 À la disposition du programmeur des objets: les différents types de


comptes bancaires

 Chaque objet sait comment se comporter:


• un compte courant saurait qu'il n'accorde pas d'intérêts pour
l'argent déposé.

 Programmation de l'application consiste à transmettre à ses objets


un message pour leur dire qu'on désire déposer ou retirer de l'argent,
à eux de faire le reste.

 Écrire une application orientée objet => transmettre des ordres


d'actions à des objets (préexistants et autonomes).

 Si cela est réalisable => l'écriture et la maintenance des applications


doivent
8 s'en trouver considérablement simplifiées.
Les concepts Objet
 POO: Programmation dans laquelle les programmes sont organisés
comme des ensembles d'objets coopérant ensemble.

1) Objet:

 Etat: Regroupe les valeurs instantanées de tous les attributs d'un


objet :
• Un attribut est une information qui qualifie l'objet qui le contient
• Chaque attribut peut prendre une valeur dans un domaine de
définition donné
• Exemple : Un objet voiture regroupe les valeurs des attributs
couleur, masse et puissance fiscale

9
Les concepts Objet
1) Objet:

 Etat:
• L'état d'un objet à un instant donné, correspond à une sélection
de valeurs, parmi toutes les valeurs possibles des différent
attributs
• L'état évolue au cours du temps, il est la conséquence de ses
comportements passés
• Exemple: Une voiture roule, la quantité de carburant diminue, les
pneus s'usent, etc.

• Certaines composantes de l'état peuvent être constantes,


Exemple: la marque de la voiture
10
Les concepts Objet
1) Objet:

 Comportement: Regroupe toutes les compétences d'un objet et décrit


les actions et les réactions de cet objet
• Chaque partie du comportement est appelée opération
• Les opérations d'un objet sont déclenchées suite à une
stimulation externe, représentée sous la forme d'un message
envoyé par un autre objet
• L'état et le comportement sont liés

11
Les concepts Objet
1) Objet:

 Identité:
• Chaque objet possède une identité qui caractérise son existence
propre
• Permet de distinguer tout objet de façon non ambiguë,
indépendamment de son état
• Permet de distinguer deux objets dont toutes les valeurs
d'attributs sont identiques
• Exemple :deux pommes de la même couleur, du même poids et
de la même taille sont deux objets distincts.

12
Les concepts Objet
1) Objet:

 Communication entre objet : le concept de


message
• Le comportement global d'une application
repose sur la communication entre les objets
qui la composent

• L'unité de communication entre objets


s'appelle message

• Il existe cinq catégories principales de


massages
-Les constructeurs qui créent des
objets
-Les destructeurs qui détruisent des objets
-Les sélecteurs qui renvoient tout ou partie
de l'état de l'objet
-Les modificateurs qui changent tout ou
partie de
13 l'état d'un objet
Les concepts Objet
2) Classe:

 Une classe est un type de données abstrait, caractérisé par des


propriétés (attributs et méthodes) communes à des objets et
permettant de créer des objets possédant ces propriétés. Exemple:
Voiture est la classe de toutes les voitures

 Un objet créé par une classe sera appelé une instance de cette
classe ce qui justifie le terme « variables d'instances »

 les valeurs des variables d'instances sont propres à chacune de ces


instances et les caractérisent
 Les objets sont construits à partir de la classe, par
un processus appelé instanciation: tout objet est une
instance de classe

 Nous distinguons deux types de classes


• Classe concrète : peut être instanciée
• Classe abstraite : est une classe qui ne donne
14 pas directement des objets
Les concepts Objet
3) Encapsulation:

 Consiste à masquer les détails d'implémentation d'un objet, en


définissant une interface.

 Est la séparation entre les propriétés externes, visibles des autres


objets, et les aspects internes, propres aux choix d'implantation
d'un objet.

 L'interface est la vue externe d'un objet, elle définit les services
accessibles (offerts) aux utilisateurs de l'objet.

15
Les concepts Objet
3) Encapsulation:

 Présente un double avantage

• facilite l'évolution d'une application car elle stabilise


l'utilisation des objets : on peut modifier l'implémentation des
attributs d'un objet sans modifier son interface
 Les utilisateurs d'une abstraction ne dépendent pas de la
réalisation de l'abstraction mais seulement de sa
spécification : ce qui réduit le couplage dans les modèles

• garantit l'intégrité des données, car elle permet d'interdire


l'accès direct aux attributs des objets (utilisation d'accesseurs)
 Les données encapsulées dans les objets sont protégées
des accès intempestifs

16
Les concepts Objet
3) Encapsulation:

 Il est possible d'assouplir le degré d'encapsulation


au profit de certaines classes utilisatrices bien
particulières
• En définissant des niveaux de visibilité

 Les trois niveaux distincts d'encapsulation


couramment retenus sont:
• Niveau privé : c'est le niveau le plus fort; la
partie privée de la classe est totalement opaque

• Niveau publique : ceci revient à se passer de la


notion d'encapsulation et de rendre visibles les
attributs pour toutes les classes

• Niveau protégé : c'est le niveau intermédiaire ;


les attributs placés dans la partie protégée sont
visibles par les classes dérivées de la classe
17 fournisseur. Pour toutes les autres classes, les
Avantages de la POO
 Augmente l’intelligibilité des programmes en rassemblant les
données et les traitements qui s’appliquent à elles.

 Facilite la réutilisation de morceaux de programmes

 Facilite la mise à jour et l’ajout de fonctionnalités

 JAVA, C++, Python, PHP, JavaScript, Ruby…

18
Questions

19

Vous aimerez peut-être aussi