Vous êtes sur la page 1sur 7

Programmation Orienté Objet JAVA

Chapitre 1 : Concepts généraux de la POO

ISCAE – 2ème LF IAG

Préparé par : Manel BLAGHJI

E-mail : blaghji.manel@gmail.com

LOGO
AU : 2010/2011

Programmation fonctionnelle

 La programmation fonctionnelle sépare les données des


actions.

 Les logiciels étaient composés :


 D’une part d’une hiérarchie de fonctions.
 D’autre part de données représentant l’élément manipulé.

1
Programmation fonctionnelle

 Avantages :

 Méthode de conception proche du raisonnement humain.


 Factorisation des comportements du logiciel : pour utiliser une
fonction, on peut faire appel à d’autres fonctions existantes.

 Inconvénient :

 Problème de maintenance en cas d’évolution du logiciel : une


simple mise à jour de l'application à un point donné peut impacter
en cascade sur d'autres fonctions.

L'approche fonctionnelle n'est pas adaptée au


développement d'applications qui évoluent sans cesse et dont la
complexité croit continuellement.
3

Programmation Orienté objet

 La POO se rapporte à la manière que nous avons de voir et


structurer le monde qui nous entoure, de le modéliser, ce qui
nous permet d’organiser notre pensée pour résoudre nos
problèmes quotidiens.

 On se pose d’abord la question : « de quoi parle-t-on ? » et


non pas la question « que veut-on faire ? »

 Pas de séparation entre les données et les actions : Le


travail du développeur consiste à faire interagir des objets
qui contiennent chacun les données, ainsi que les méthodes
qui constituent le seul moyen d’agir sur ces données.

2
Les objets

 Un objet est une abstraction d’un élément du monde réel. Il


possède des informations et se comporte suivant un ensemble
d’opérations qui lui sont applicables.

 Un objet est défini par :

 Un état : représenté par des attributs qui stockent des données


caractérisant l’objet.

 Un comportement : défini par des méthodes qui lui permettent


d’agir sur ces attributs et de réagir aux sollicitations extérieures.

 Une identité : permet de distinguer un objet d’un autre objet.

Les objets

Exemples :

 Peugeot 106 de couleur grise immatriculée 5039 TU 90 :


Attributs : couleur = grise, marque = Peugeot, n°im= 5039 TU 90
Méthodes : démarrer (), avancer ( ), reculer ( ), accélérer (), …
Identité : XRE-HGFRT-KIUT-…

 Renault espace de couleur verte immatriculée 985 TU 97 :


Attributs : couleur = verte, marque = Renault, n°im = 985 TU 97
Méthodes : démarrer (), avancer ( ), reculer ( ), accélérer (), …
identité : HYU-XJKMP-PLTB-….

3
Les classes

 Une classe est un type de données abstrait (TAD) qui


précise des caractéristiques (attributs et méthodes)
communes à toute une famille d’objets et qui permet de créer
(instancier) des objets possédant ces caractéristiques.

Un objet est une instance d’une classe.

 L’instance (l’objet) :
• possède les propriétés définies par sa classe.
• peut effectuer les opérations définies par sa classe.
7

Les classes

 Un TAD, encapsule les opérations et cache la structure sous-


jacente d'un objet. Ainsi, le programmeur consacrera ses
efforts à la solution d'un problème sans se préoccuper des
détails inutiles. Il s'intéressera à ce qu'un objet peut fournir
comme service et ignorera comment ses services sont
réalisés.

 p est une pile, on écrira p.empiler(n), au lieu de quelque


chose comme s = s+1; t[s]=n.

Les objets ne peuvent être utilisés qu’au travers de leur


interface (niveau externe). De ce fait les éventuelles modifications
apportées à leur structure interne restent invisibles à l’extérieur.

4
Paradigmes Objets

 Dans le paradigme orienté objet, les entités sont des objets, dont le
modèle est une classe. Il repose sur trois concepts essentiels :
l’encapsulation, l’héritage et le polymorphisme.

 Encapsulation :

• Consiste à rassembler les données et les méthodes au sein d’une


même entité (l’objet) et masquer les détails d’implémentation au
monde extérieur, en définissant une interface (l’ensemble des
méthodes proposées).
• 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.
• Garantit l’intégrité des données, car elle permet d’interdire, ou de
restreindre, l’accès direct aux attributs des objets.

Paradigmes Objets

 Héritage :

• Mécanisme permettant de créer une nouvelle classe à partir d’une


classe déjà existante. Une classe B hérite d’une classe A signifie
que la classe B hérite des attributs et méthodes de la classe A.

• La spécification : ajouter des caractéristiques spécifiques ou d’en


adapter certaines.

• La généralisation : regrouper les caractéristiques communes d’un


ensemble de classes.

L’héritage évite la duplication du code et encourage son


réutilisation.

10

5
Paradigmes Objets

 Polymorphisme :

• Origine grec et signifie «qui peut prendre plusieurs formes».

• Signifie que la même méthode peut être définie dans différentes


classes et que chaque classe peut implémenter cette méthode à
sa manière.

Il est ainsi possible d’invoquer une méthode sur un objet sans


savoir à quelle classe celui-ci appartient exactement.

• Le polymorphisme augmente la généricité, et donc la qualité du


code.

11

Pourquoi l’approche objet ?

 La motivation essentielle de l’approche objet est d'augmenter les


possibilités de réutilisation.

 Les moyens de réutilisation offerts par l'approche objet sont


multiples :

 L'encapsulation des données et du code dans une même entité


permet de garantir la cohérence des objets (contrairement aux
procédures qui dépendent la plupart du temps de données
externes à elles-mêmes). Cette cohérence est indispensable pour
envisager de réutiliser un objet dans un autre contexte (pas
suffisante, mais nécessaire)

12

6
Pourquoi l’approche objet ?

 La notion d'encapsulation par une interface permet de


normaliser le fonctionnement des objets : il est possible de
changer le fonctionnement interne d'un objet particulier, sans
modifier la manière de l'utiliser (c.a.d sans changer le reste du
programme)

 La notion d'héritage permet de réutiliser ce qui a déjà été défini


lors de la conception d'un objet pour en créer de nouveaux.

 La notion de polymorphisme, permet de manipuler de manière


identique des objets ayant des comportements totalement
différents (des comportements qui ne sont pas obligatoirement
connus au moment où l'on définit ces manipulations).

13

Vous aimerez peut-être aussi