Vous êtes sur la page 1sur 49

Programmation Orientée

Objet

SUP’COM Programmation Orienté Objet - Chapitre 1 1


Plan

Chapitre 1 : Concepts de base de la


POO

Chapitre 2 : Les éléments de base du


langage Java

Chapitre3 : Mise en œuvre de l’héritage


dans Java

SUP’COM Programmation Orientée Objet - Chapitre 1 2


Chapitre 1

1. Introduction à l’approche OO
2. Les concepts objets de base
3. Conversions d’objets
4. Introduction au langage JAVA
5. Exercices

SUP’COM Programmation Orientée Objet - Chapitre 1 3


Chapitre 1

1. Introduction à l’approche OO
- Evolution des langages
- Bilan de la programmation
procédurale
- Pourquoi une démarche Objet?

SUP’COM Programmation Orientée Objet - Chapitre 1 4


Evolution des langages

Fournir de l’abstraction pour


simplifier les problèmes

Lang. Lang. Lang. Lang.


Machine Assembleur Procéduraux Objet

Début des années 90

SUP’COM Programmation Orientée Objet - Chapitre 1 5


Bilan de la
programmation procédurale

 Structuration des instructions en


PROCEDURES et FONCTIONS

 Passage des paramètres par VALEUR et


par REFERENCE

 Structuration des données sous forme de


TYPES

SUP’COM Programmation Orientée Objet - Chapitre 1 6


Bilan de la
programmation procédurale

 Allocation STATIQUE et allocation


DYNAMIQUE

 Découpage des programmes en


LIBRAIRIES

SUP’COM Programmation Orientée Objet - Chapitre 1 7


Bilan de la
programmation procédurale
Ce type de programmation tient
compte des traitements et la
question qui résume sa démarche est
«Que doit faire le programme? »

Résolution des problèmes dirigée par


les TRAITEMENTS

SUP’COM Programmation Orientée Objet - Chapitre 1 8


Pourquoi une démarche objet ?
 Une démarche dirigée par les
DONNEES
 Deux principaux objectifs
- Amélioration de la QUALITE des
applications.

- Réduction des coûts de développement


grâce à la REUTILISATION

SUP’COM Programmation Orientée Objet - Chapitre 1 9


Définition de la
démarche Orientée Objet
Identifier …

• Les Entités
• Les Structures sous-jacentes
• Les Traitements

CONCEVOIR …
Les Classes

SUP’COM Programmation Orientée Objet - Chapitre 1 10


Chapitre 1
1. Introduction à l’approche OO
2. Les concepts objets de base
- Classe Objet
- Encapsulation Héritage
- Composition Polymorphisme

SUP’COM Programmation Orientée Objet - Chapitre 1 11


Définition de l’Objet
 Toute ENTITE identifiable, concrète
ou abstraite, manipulée par
l’application logicielle.

Un objet est un élément tangible


ex: un article en stock, un compte
bancaire, un compteur, un bouton
sur l’écran

SUP’COM Programmation Orienté Objet - Chapitre 1 12


Comportement d’un Objet
 Réagit à certains messages qu’on
lui envoie de l’extérieur; la façon
dont il réagit détermine le
comportement de l’objet.
 Ne réagit pas toujours de la
même façon à un même message.
Sa réaction dépend de l’état dans
lequel il se trouve.

SUP’COM Programmation Orienté Objet - Chapitre 1 13


Caractéristiques d’un Objet
 Un IDENTITIFICATEUR UNIQUE
OID qui permet de distinguer un objet
d’un autre
 Un ETAT INTERNE
valeurs des variables d’objet ou
ATTRIBUTS
 Un COMPORTEMENT (capacités d’action
de l’objet) procédures ou fonctions
appelés METHODES qui peuvent être
appliqués à l’objet
SUP’COM Programmation Orienté Objet - Chapitre 1 14
Le concept de Classe

 Une classe est un MODELE de


définition pour des objets ayant
même structure, même
comportement et une sémantique
commune.

SUP’COM Programmation Orienté Objet - Chapitre 1 15


Définition de la Classe
 Une classe modélise un type
d’ENTITE de l’Univers réel

Une classe =
{
structures +
procédures utilisateurs
}

SUP’COM Programmation Orientée Objet - Chapitre 1 16


Définition de la Classe
 Une classe est une UNITE de votre logiciel.

Une classe =
{ structures +
procédures utilisateurs +
procédures de création en MC
}

SUP’COM Programmation Orientée Objet - Chapitre 1 17


Exercices

SUP’COM Programmation Orientée Objet - Chapitre 1 18


Principe de l’Encapsulation
 L’accès aux attributs de l’objet ne
peut être fait qu’à travers des
méthodes.
- Les données sont privées
(cachées).
- Les méthodes publiques
définissent l’interface de l’objet.

SUP’COM Programmation Orientée Objet - Chapitre 1 19


Schématisation de l’Encapsulation

int getHeuress()

Variables int jour;


int mois; Méthodes
ou int année;
SetHeures (opérations)
Attributs int heure;
int minutes;
(int m)
int secondes

int getMinutes()

Un objet « Montre »

SUP’COM Programmation Orientée Objet - Chapitre 1 20


Intérêt de l’Encapsulation

La modification des structures de données


n’affecte pas les programmes qui utilisent
l’objet.
Meilleure modularité.
Meilleure sécurité.
Meilleure lisibilité.

SUP’COM Programmation Orientée Objet - Chapitre 1 21


Communication
par envoi de messages
Envoie d’un message à
l’objet identifié par
maMontre

maMontre.setHeure(14)
maMontre.setMinutes(45);

Objet récepteur
Méthode invoquée Paramètres du message
de message

SUP’COM Programmation Orienté Objet - Chapitre 1 22


Communication
par envoi de messages
 Les méthodes public d’un objet
correspondent aux messages que l’on peut
lui envoyer
 Les messages sont caractérisés par :
– objet cible (récepteur) du message
– nom de la méthode à déclencher
– paramètres de cette méthode

SUP’COM Programmation Orienté Objet - Chapitre 1 23


Le concept d’Héritage

 L'héritage est le concept qui permet


de définir de nouvelles classes à
partir de classes existantes.

SUP’COM Programmation Orientée Objet - Chapitre 1 24


Définition de l’analyste
 Technique de
modélisation
Personne
permettant d’organiser
les classes d’un
domaine selon des Étudiant Professeur
niveaux d’abstraction.
 L’approche objet
Professeur Professeur
permet de factoriser la titulaire auxiliaire
connaissance grâce
aux arbres de classes.

SUP’COM Programmation Orientée Objet - Chapitre 1 25


Définition de l’analyste

Généralisation
Personne

Étudiant Professeur
Spécialisation

Professeur Professeur
titulaire auxiliaire

SUP’COM Programmation Orientée Objet - Chapitre 1 26


Définition du programmeur
• Technique de programmation Personne
permettant de définir de nouvelles nom
age
classes dites classes dérivées à getage()
partir de classes de base

• Les classes dérivées héritent le


Etudiant
contexte (Attributs + Méthodes) classe
des classes de base et rajoutent de
nouvelles potentialités getclasse()

SUP’COM Programmation Orientée Objet - Chapitre 1 27


Classification de l’héritage
Héritage simple Toute classe hérite d’une et
d’une seule classe parente au
plus.
Java ne supporte que l’héritage
simple
Héritage multiple
Une classe au moins hérite
de plus d’une classe
parente
C++ supporte l’héritage multiple

SUP’COM Programmation Orienté Objet - Chapitre 1 28


Illustration de l’Héritage
 Mettre en facteur ce que CARRE et
CERCLE ont de commun

CERCLE CARRE

centre : Point; centre : Point;


rayon : réel ; cote : réel ;

surface() {…} surface() {…}


périmètre() { … } périmètre() { … }
déplacer() déplacer()
{centre.deplacer();} {centre.deplacer();}

SUP’COM Programmation Orienté Objet - Chapitre 1 29


Illustration de l’Héritage

 Définir la classe Figure

FIGURE

centre : Point;

surface();
périmètre();
déplacer()
{centre.déplacer();}

SUP’COM Programmation Orienté Objet - Chapitre 1 30


Illustration de l’Héritage
FIGURE

centre : Point;
surface()
périmètre()
déplacer()
{centre.déplacer();}

CERCLE CARRE

rayon réel; cote : réel;


surface() {…} surface() {…}
périmètre() {…} périmètre() {…}

SUP’COM Programmation Orienté Objet - Chapitre 1 31


Différenciation de la classe dérivée

 Ajouter de nouvelles méthodes ou de


nouveaux attributs
 Changer le comportement d’une des
méthodes existantes (REDEFINIR ou
SURCHARGER la méthode)

Concepts fondamentaux
de la programmation OO

SUP’COM Programmation Orienté Objet - Chapitre 1 32


Redéfinition vs surcharge

 La redéfinition de méthode consiste à


réécrire dans une classe fille
l’implémentation d’une méthode héritée sans
modifier sa signature.

 La surcharge de méthode implique une


double redéfinition de la signature et du
code d’une méthode héritée ou non.

SUP’COM Programmation Orienté Objet - Chapitre 1 33


Définition du Polymorphisme
 C’est un mécanisme qui permet à
une sous classe de redéfinir une
méthode dont elle a hérité ou de
surcharger une méthode dont elle a
héritée ou non.

Ainsi on peut avoir une méthode avec


la même signature et des codes
différents : polymorphisme.

SUP’COM Programmation Orientée Objet - Chapitre 1 34


Illustration du Polymorphisme

c1 : Cercle;
c2 : Carre;
c1.surface(); Même message
c1.surface(); mais des
comportements
différents

SUP’COM Programmation Orientée Objet - Chapitre 1 35


Le concept de Composition

 On dit qu’il existe une relation de


composition entre deux classes
quand une classe participe à la
définition d’un attribut dans une
autre classe.

SUP’COM Programmation Orientée Objet - Chapitre 1 36


Exercices

SUP’COM Programmation Orientée Objet - Chapitre 1 37


Chapitre 1
• Introduction à l’approche OO
• Les concepts objets de base
• Introduction au langage JAVA
– JAVA & les langages OO
– Identité de JAVA
– JAVA est multiplateforme
– Questions courantes
– Compilation et Interprétation

SUP’COM Programmation Orientée Objet - Chapitre 1 38


JAVA & les langages OO

Il existe plusieurs langages


orientés objet
C#, C++, Visual C++,
Dephi,
Visual Basic, …
Java Standard
industriel

SUP’COM Programmation Orientée Objet - Chapitre 1 39


Identité de JAVA

• Né en 1995
• Descendant du C et C++
• Développé par Sun MicroSystems
• Peut être téléchargé depuis le site de
sun.com
• Version jdk 1.5.0.14 (environ 50 Mo)
sous la forme d’un fichier exécutable.

SUP’COM Programmation Orienté Objet - Chapitre 1 40


Atouts de JAVA
• Simple à utiliser et 100% objet
• Doté, en standard, de bibliothèques de
classes très riches Gestion des
interfaces graphiques (fenêtres, boîtes
de dialogue, contrôles, menus,
graphisme)
• Programmation multi-threads
(multitâches)
• Accès aux fichiers et au réseau …

SUP’COM Programmation Orienté Objet - Chapitre 1 41


Atouts de JAVA

• Doté, en standard, d’un mécanisme des


gestions des erreurs (les exceptions) très
utile et très performant.

• Est multi plates-formes (Windows, Unix


et Mac)
• Est utilisé pur développer des …
Applications isolées , Applets

SUP’COM Programmation Orienté Objet - Chapitre 1 42


JAVA est multi plateforme
Langage non multi plateforme

Binaire Windows
Fichier source
Compilateur sous Windows

Binaire Unix

Compilateur sous Unix

Binaire Mac

Compilateur sous Mac

SUP’COM Programmation Orienté Objet - Chapitre 1 43


JAVA est multi plateforme

monFichier.java Machine virtuelle


sous Windows Binaire Windows
Compilateur Java
Java Bytecode
.class

.jar Machine virtuelle


.zip Binaire Unix
sous Unix

Collection de classes
Machine virtuelle
sous Mac Binaire Mac

SUP’COM Programmation Orienté Objet - Chapitre 1 44


Questions courantes

• Pourquoi ne pas interpréter


directement le programme Java ?

• Pourquoi ne pas compiler


directement et générer un
exécutable ?

• Qu’en est-il de la rapidité


d’exécution de Java?
SUP’COM Programmation Orientée Objet - Chapitre 1 45
Développer avec Java

 Pour Programmer en Java il faut …

 JDK 1.5
 un EDI exemple ECLIPSE, KAWA
 documentation Java
 depuis le site officiel
http://java.sun.com

SUP’COM Programmation Orienté Objet - Chapitre 1 46


Les variables d’environnement

 Sur votre poste positionner les variables

 CLASSPATH pour indiquer le chemin


des .class, des librairies .ZIP et .JAR,
des packages
 PATH pour indiquer le chemin du JDK

SUP’COM Programmation Orienté Objet - Chapitre 1 47


Compilation & Interprétation

Compilation :
javac [<options>] <fichier-source- .java>
Exemple : javac Test.java

Exécution :
java [<options>] <fichier-class sans extension>

Exemple : java Test

SUP’COM Programmation Orientée Objet - Chapitre 1 48


Exercices

SUP’COM Programmation Orientée Objet - Chapitre 1 49