You are on page 1of 17

Concept Orient Objet

Guerouate Fatima
EST_Sal

guerfat@yahoo.fr
guerouate@menara.ma
Organisation
Aujourdhui :

Pourquoi lorient objet


Concept objets et les motivations du C++
Premire classe C++
Points syntaxes

Concept Orient Objet en C++ 2


Pourquoi lorient objet
Problmatiques
Comment comprendre et rutiliser les programmes faits
par dautres.
Comment rutiliser les programmes que vous avez crits
il ya six mois et dont vous avez oubli le fonctionnement.
Comment "cloner" rapidement des programmes dj fait
pour des applications lgrement diffrentes.
Comment programmer simplement des actions simples
sur des lments varis et complexes.
Comment ajouter des fonctions sans tout rcrire et tout
retester.

Concept Orient Objet en C++ 3


Pourquoi lorient objet
Approche traditionnelle: (Dveloppement fonctionnelle).

Avantage
Facile en dcomposant les programmes en "fonctions" : un
processus global, et des sous processus ou fonctions qui
crent un arbre dcomposant le problme en une srie
dactions (cest une dcomposition "algorithmique").

Inconvnient
Tout changement de spcification des consquences
catastrophiques... Il faut parfois tout refaire du sol au
plafond... .

Concept Orient Objet en C++ 4


Solution
Dvelopper trois stratgies.

Modliser diffremment .
Modulariser.
Encapsuler

Concept Orient Objet en C++ 5


Le "modle objet"
A quoi sert un modle en programmation.

Permettre de raliser une "maquette" simplifie du


programme raliser .
Un modle est une "abstraction", une simplification de la
ralit.

Un bon modle doit runir deux qualits :


Faciliter la comprhension du programme tudi, en
rduisant la complexit.
Permettre de simuler le comportement du programme.

Concept Orient Objet en C++ 6


Le "modle objet"
Lintrt du "modle objet ".

La programmation objet sappuie sur un modle calqu


sur la ralit physique du monde.
Les objets se comportent comme des entits
indpendantes, auto-suffisantes qui collaborent par
change de message.
On peut aussi raisonner du particulier au gnral
(gnraliser) grce la notion de classes dobjets, qui
permet de partager entre les objets de la mme classe des
proprits et des comportements...
Un objet, dans ce modle, est dfini comme un "truc" (une
"entit") qui a des proprits, et un comportement.

Concept Orient Objet en C++ 7


Le "modle objet"
Les caractristiques fondamentales dun objet sont :

Faciliter une identit (ne pas confondre "voiture" et la


voiture 2345 FGT 75).
Un comportement (freinage).
Un tat (elle est rouge, le rservoir est plein).

Exemple
UML comme langage de modlisation standardise :
les modles .
les notations.
les diagrammes .

Concept Orient Objet en C++ 8


Dfinition dun module
Interface limit
Communication limit
Interface explicite
Masquage des informations
Correspond des units syntaxiques du langage

Fonctions

Interface
Donnes

Concept Orient Objet en C++ 9


Modulariser

La programmation objet apporte tous les outils pour avoir


une approche "modulaire" de la programmation : lobjet
est un "module" parfaitement oprationnel:
on peut rutiliser des bibliothques de classes dobjets prts
lemploi.
On peut "personnaliser" des objets existants, sans toucher
au code test et revrifi du code de dpart.
On peut faire agir des objets sur des objets, ou interagir des
objets entre eux, sans compromettre.
Et modifier un objet (bien fait) noblige pas modifier les
autres objets...

Concept Orient Objet en C++ 10


Modulariser
Organiser autour des donnes manipuler

Fonctions de
Donnes manipulations et
de traitements

Concept Orient Objet en C++ 11


Lencapsulation
Lintrt.

Lencapsulation permet de "cloisonner" les donnes et


les fonctions lintrieur de lobjet.
crire des modules qui fonctionnent comme des botes
noires hermtiques : ces botes attendent un certain type de
donnes, de commandes, de message. Elles ragissent de
manire prvisible, et renvoient un certain type de donnes,
de messages.
Par contre : en dehors de ces "interactions" avec le monde
extrieur, tout le reste est "encapsul" dans la bote, il est
donc impossible que ce qui se passe dans la bote influe sur
une autre bote, ou linverse...

Concept Orient Objet en C++ 12


Concept dobjet
Quest ce que le concept Orient_Objets?
Un objet est une bote noire qui reoit et transmet des
messages.
La bote noire renferme du code (squences
d'instructions pour l'ordinateur) et des donnes (les
informations sur lesquelles les instructions oprent).
Traditionnellement, le code et les donnes ont toujours
t tenus l'cart.
Exemple: En langage C
Les units de code sont appeles des fonctions.
Les units de donnes sont appeles des structures.

Concept Orient Objet en C++ 13


Les Classes
Comment les objets sont-ils dfinis ?
Un objet est dfini via sa classe, qui dtermine tout
propos de l'objet.
Les objets sont des instances individuelles d'une classe.

Exemple
vous pourriez crer un objet appel Caniche de la classe
Chien. La classe Chien dfinie ce qu'est tre un objet de
type Chien, et tous les messages sur lesquels un objet de
type Chien peut interagir.
Tous les langages orients-objets ont une quelconque
mthode, habituellement appel usine, pour fabriquer
des instances d'objets partir d'une classe.

Concept Orient Objet en C++ 14


La POO
Lintrt de la POO par rapport au procdural et au
fonctionnel.

Le code est plus sr.


Les programmes sont plus clairs.
La maintenance des applications est facilite.
Le code est facilement rutilisable.
Il est facile de crer de nouveaux programmes lgrement
diffrents par clonage dun programme existant.
Il est facile de faire voluer des programmes.
La POO rend possible le dveloppement de gros
programmes.

Concept Orient Objet en C++ 15


La POO
Les inconvnients.

La POO oblige rflchir et modliser avant de


programmer (est-ce rellement un inconvnient).
La notation POO nest pas toujours intuitive.

Concept Orient Objet en C++ 16


La POO
Quels sont les langages orients objet ?

C++.
PHP
ASP
JAVA
J
Pascal Objet.
Delphi
Python.

Concept Orient Objet en C++ 17