0% ont trouvé ce document utile (0 vote)
6 vues29 pages

Introduction à la Programmation Orientée Objet

Ce document introduit les concepts de base de la programmation orientée objet. Il présente les avantages de la POO par rapport à la programmation procédurale, notamment l'encapsulation, l'héritage et le polymorphisme. L'exemple d'une interface graphique illustre la modélisation objet d'un problème.

Transféré par

android android
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues29 pages

Introduction à la Programmation Orientée Objet

Ce document introduit les concepts de base de la programmation orientée objet. Il présente les avantages de la POO par rapport à la programmation procédurale, notamment l'encapsulation, l'héritage et le polymorphisme. L'exemple d'une interface graphique illustre la modélisation objet d'un problème.

Transféré par

android android
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Programmation Orientée Objet et Java

La Programmation Orientée Objet


Yousef El Mourabit

EST - Beni Mela


2021/2022
Flashback
● Premiers programmes écrits en langage machine et dépendant de
l’architecture des ordinateurs utilisés.
● L’apparition du microprocesseur ! programme procéduraux
(Fortran, Pascal, C …)
● Code devenant indépendant du type du microprocesseur
● Programmation procédurale ?
● Les données sont séparées des procédures et fonctions les traitant.
● Deux principaux inconvénients :
● Réutilisation
● Découplage

!2 Introduction à POO (Yousef EL Mourabit / v1.1)


Flashback
● Conséquence : Les logiciels ainsi conçus sont donc peu évolutifs et
de maintenance difficile:
● l’enjeu de simplifier les opérations de maintenance.
● Une alternative :
● La programmation orientée objet
● L'idée de base est de supprimer le découplage précédemment évoqué
entre données et fonctions.
● Au sein d’une même entité, on va regrouper certaines données et les
moyens de traitement de ces données.

!3 Introduction à POO (Yousef EL Mourabit / v1.1)


Flashback
● Une telle entité s’appellera un objet et possédera donc :
● Une identité.
● Des variables définissant son état que l'on appellera attributs.
● Des sous programmes gérant son comportement que l'on
appellera méthodes.

attributs

méthodes

!4 Introduction à POO (Yousef EL Mourabit / v1.1)


Programmation orientée objet
● On s'intéresse à modéliser le problème par un ensemble
d'objets;
● Met l'accent sur les objets requis pour résoudre un problème;
● Le programme est l’ensemble des objets et des interactions
entre ces objets;
● En programmation orientée objet, on cherche à identifier les
objets impliqués et leurs responsabilités respectives.

!5 Introduction à POO (Yousef EL Mourabit / v1.1)


Programmation procédurale vs POO

!6 Introduction à POO (Yousef EL Mourabit / v1.1)


Interaction entre objets

!7 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple : Programmation Procédurale vs POO
● Spécification fonctionnelle :
Une interface graphique va comprendre trois formes (shapes) : un
triangle, un carré et un cercle.
Lorsque l’utilisateur clique sur une forme, cette dernière doit
effectuer une rotation de 360° et un fichier musical correspondant à
cette forme sera (format .wav) joué.

!8 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple : Programmation Procédurale vs POO

!9 Introduction à POO (Yousef EL Mourabit / v1.1)


Paradigme orientée objet

!10 Introduction à POO (Yousef EL Mourabit / v1.1)


Classe / Objet
● La description d'un objet est appelée une classe d'objet.
● On dit qu'un objet est une instance de la classe ou un état de
celle-ci. L'instanciation d'une classe est un objet unique.
● La classe décrit donc la structure interne d'un objet, c'est à dire:
les données qu'il regroupe (attributs) et les actions qu'il est
capable d'assurer (méthodes).

!11 Introduction à POO (Yousef EL Mourabit / v1.1)


Class/Object (instance)

!12 Introduction à POO (Yousef EL Mourabit / v1.1)


Instance

!13 Introduction à POO (Yousef EL Mourabit / v1.1)


Encapsulation

!14 Introduction à POO (Yousef EL Mourabit / v1.1)


Encapsulation
● Le principe est d'interdire l'accès direct aux attributs d'un objet.
On ne dialogue avec l'objet qu'à travers une interface définissant
les services accessibles aux utilisateurs de l'objet.
● C'est alors le rôle des méthodes de modifier ou de retourner la
valeur des attributs.
● Importance de l’encapsulation:
● On peut modifier les attributs d'un objet sans modifier la façon dont
il est utilisé.
● Garantie l'intégrité des données, car leur accès direct est interdit
(limité et/ou contrôlé).

!15 Introduction à POO (Yousef EL Mourabit / v1.1)


Généralisation/Spécialisation

!16 Introduction à POO (Yousef EL Mourabit / v1.1)


Héritage
● Relation de spécialisation/généralisation entre deux classes. Elle
indique qu'une classe est une sous-classe d'une autre, c.à.d qu'elle
possède les mêmes attributs et méthodes plus d'autres qui lui sont
propres.

!17 Introduction à POO (Yousef EL Mourabit / v1.1)


Héritage
● Relation entre classes
Animaux
● Oiseaux est un cas particulier de Animaux
● Animaux généralise Oiseaux
● La classe fille
Reptiles Oiseaux
● hérite les attributs et les comportements
● peut avoir des attributs et des méthodes nouvelles
● peut avoir un comportement modifié Shape

Triangle Square

!18 Introduction à POO (Yousef EL Mourabit / v1.1)


Héritage
Intérêt:
● En construisant une hiérarchie de classe, on évite des répétitions
dans le code (factorisation), en encourageant la réutilisation de
classes déjà existantes.
● Cela permet également de simplifier la conception de la
modélisation.

!19 Introduction à POO (Yousef EL Mourabit / v1.1)


Polymorphisme
● Littéralement : c'est la faculté de prendre plusieurs formes.
● En POO, c'est un mécanisme permettant à une sous-classe de
redéfinir une méthode dont elle a hérité tout en gardant la
même signature.

!20 Introduction à POO (Yousef EL Mourabit / v1.1)


Polymorphisme
Animaux
● Tout animal peut se déplacer
SeDeplacer()
● Il le fait différemment s’il s’agit d’un
oiseau ou d’un serpent
Oiseaux Serpents

SeDeplacer() SeDeplacer()
{ {
en volant en glissant
} }

!21 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple programmation procédurale vs POO
● Le manager propose une nouvelle mise à jour de la spécification
expliquée dans l’exemple 1.
● Il demande d’ajouter une nouvelle forme à l’interface et quand
l’utilisateur clique dessus la forme tourne de 360° et un fichier
cette fois ci de type .mp3 est joué. La forme est une amibe.

!22 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple programmation procédurale vs POO
Rotate (shapeNum) {
//faire une rotation de la forme de 360°• Beaucoup de code est
affecté
} • Le code déjà testé doit
playSound (shapeNum){ changer

//si shapeNum n’est pas une amibe


//localiser le fichier .wav correspondant
au shapeNum et le faire jouer Amibe
//sinon jouer amibe.mp3
• Rotate (){}
} POO
• playSound() {
jouer amibe.mp3
}
!23 Introduction à POO (Yousef EL Mourabit / v1.1)
Exemple programmation procédurale vs POO
● Si maintenant l’implémentation de la rotation des formes est
décrite comme suit :
● Il faut trouver le rectangle qui entoure la forme et ensuite, puis
localiser le centre du rectangle et faire enfin tourner la forme par
rapport à ce point.

!24 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple programmation procédurale vs POO
● Pour l’amibe, il faut la tourner par rapport au bord supérieur

!25 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple : Programmation procédurale vs POO
rotate (shapeNum) {
//si la forme n’est pas une amibe Amibe
//déterminer le rectangle qui l’entoure
//faire tourner selon son centre
//Sinon • Rotate (){
//calculer les coordonnées du bord //calculer les coordonnées du
supérieur et //faire tourner selon ce point bord superieur et faire tourner
} selon ce //point
playSound (shapeNum){ }
//si shapeNum n’est pas une amibe • playSound() {
//localiser le fichier .wav correspondant
//au shapeNum et le faire jouer jouer amibe.mp3
//sinon jouer amibe.mp3 }
}

!26 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple programmation procédurale vs POO
//determiner le //code pour jouer
rectangle qui Shape //un fichier .wav
l’entoure
//faire tourner selon
son centre
• Rotate (){}
• playSound()
{}

Triangle Carré Cercle Amibe

!27 Introduction à POO (Yousef EL Mourabit / v1.1)


Exemple programmation procédurale vs POO

Amibe
• Shape
• Rotate (){
//calculer les coordonnées du
• Rotate (){} bord superieur et faire tourner
selon ce //point
Redéfinition
• playSound() }
{} • playSound() {
jouer amibe.mp3
}

!28 Introduction à POO (Yousef EL Mourabit / v1.1)


Programmation procédurale vs POO

!29 Introduction à POO (Yousef EL Mourabit / v1.1)

Vous aimerez peut-être aussi