Vous êtes sur la page 1sur 8

COURS WINDEV NUMERO 8

15/02/2015

La Programmation Oriente Objet


Cration dune classe.
Instanciation dun objet.
Diagramme Uml.
Fonctions de dessins.
etc

Cours Windev numro 8

Cours Windev numro 8


VERSION 19

Lobjectif de cette leon est de vous familiariser avec la programmation oriente objet (POO).

PROGRAMMATION ORIENTEE OBJET, (UN PEU DE THEORIE, A NE FAIT


PAS DE MAL ET CEST GRATUIT !)
De manire superficielle, le terme orient objet , signifie que l'on organise le logiciel comme une
collection d'objets dissocis comprenant la fois une structure de donnes (attributs) et un comportement
(mthodes) dans une mme entit (encapsulation). Exemple : une voiture peut avoir une certaine couleur et
en mme temps possde un comportement qui sera le mme pour toutes les autres voitures, comme
acclrer. Ce concept est diffrent de la programmation conventionnelle dans laquelle les structures de
donnes et le comportement ne sont que faiblement associs.

Encapsulation.
L'encapsulation est le principe qui permet de regrouper les attributs et mthodes au sein d'une classe.
Cette notion est aussi associe au systme de protection qui permet de contrler la visibilit d'une
variable ou d'une mthode. En d'autres termes, cela signifie que chaque fois que vous dfinissez un
membre d'une classe (attribut ou mthode), vous devez indiquer les droits d'accs quant l'utilisation de
ce membre.

Les objets.
Chaque objet a une identit et peut tre distingu des autres. Deux pommes ayant les mmes couleurs,
forme et texture demeurent des pommes individuelles; une personne peut manger l'une, puis l'autre. De la
mme faon, des jumeaux identiques sont deux personnes distinctes, mme si elles se ressemblent. Le
terme identit signifie que les objets peuvent tre distingus grce leur existence inhrente et non
grce la description des proprits qu'ils peuvent avoir. Nous utiliserons l'expression instance d'objet
pour faire rfrence une chose prcise, et l'expression classe d'objets pour dsigner un groupe de
choses similaires. En d'autres termes, deux objets sont distincts mme si tous leurs attributs (nom, taille et
couleur par exemple) ont des valeurs identiques (deux pommes vertes sont deux objets distincts).

Les classes.
La classification signifie que les objets ayant la mme structure de donne (attributs) et le mme
comportement (mthodes) sont regroups en une classe. Les objets d'une classe ont donc le mme type de
comportement et les mmes attributs. En groupant les objets en classe, on abstrait un problme. Les
dfinitions communes (telles que le nom de la classe et les noms d'attributs) sont stockes une fois par
classe plutt qu'une fois par instance. Les mthodes peuvent tre crites une fois par classe, de telle
faon que tous les objets de la classe bnficient de la rutilisation du code. Par exemple, toutes les
ellipses partagent les procdures de dessin, de calcul d'aire ou de test d'intersection avec une ligne.

Les attributs.
Un attribut est une valeur de donne dtenue par les objets de la classe. Couleur et Poids sont des
attributs des objets relatifs Voiture. Chaque attribut une valeur pour chaque instance d'objet. Par
exemple, l'attribut Couleur porte la valeur rouge dans l'objet Mercedes alors que pour l'objet Clio la
valeur de l'attribut Couleur est verte. Les instances peuvent avoir des valeurs identiques ou diffrentes
http://www.btsig.org/

Jean-Luc Baptiste

Page 1 sur 7

Cours Windev numro 8

pour un attribut donn. Chaque nom d'attribut est unique l'intrieur d'une classe. Ainsi, la classe Voiture
et la classe Pomme peuvent avoir chacune un attribut Couleur.

Les mthodes.
Une mthode est une fonction ou une transformation qui peut tre applique aux objets ou par les objets
dans une classe. Acclrer et freiner sont des mthodes de la classe Voiture. Tous les objets d'une mme
classe partagent les mmes mthodes. Chaque mthode a un objet cible comme argument implicite (c'est
l'objet lui-mme this, elle peut donc accder chacun des attributs). La mme opration peut s'appliquer
de nombreuses classes diffrentes. On dit qu'elle est polymorphe, c'est--dire qu'elle prend diffrentes
formes dans des classes diffrentes. Une mthode peut avoir des arguments, en plus de son objet cible.

FINI POUR LA THEORIE VOYONS CELA AVEC UN EXEMPLE FAIT AVEC


WINDEV
1. Nom du projet : TpObjet1
2. Pas danalyse.
Crez une nouvelle fentre que vous nommerez Dpart et qui sera la premire fentre du projet.
Voici la fentre une fois ajout tous les lments ncessaires ce support :

Champ de saisie ( Nom : Nom )

Ici 4 Champs de saisie numrique.


Libell de la premire Position x :
Nom= lposx.
Le second : nom=Lposy.
Le troisime : nom=Lposx1
Le quatrime : Nom=Lposy1

Bouton de nom quelconque.


Champ image (nom : Zonedessin).

Le but de cette fentre est de faire afficher un cercle dans la zone image avec les coordonnes que nous
lui passerons

Nom : Cest le nom que nous donnerons notre objet cercle


Position X : Abscisse du coin haut gauche du rectangle dans lequel le cercle est inscrit. Ces coordonnes
sont exprimes en pixels.
http://www.btsig.org/

Jean-Luc Baptiste

Page 2 sur 7

Cours Windev numro 8

Position y : Ordonne du coin haut gauche du rectangle dans lequel le cercle est inscrit. Ces coordonnes
sont exprimes en pixels.

Position x1 : Abscisse du coin bas droit du rectangle dans lequel le cercle est inscrit. Ces coordonnes
sont exprimes en pixels.

Position y1 : Ordonne du coin bas droit du rectangle dans lequel le cercle est inscrit. Ces coordonnes
sont exprimes en pixels.

Le bouton Action : Il contiendra le code ncessaire au trac du cercle


Voil, maintenant que le dcor est plant passons laction !
Il nous faut crer une classe nomme cercle qui aura 4 membres : les coordonnes et une mthode
dessiner.

Clic Droit->Nouvelle
Nommez l cercle.

classe.

Voil le rsultat :
L'diteur de code pour la classe cercle devrait ressembler cela :

http://www.btsig.org/

Jean-Luc Baptiste

Page 3 sur 7

Cours Windev numro 8

C'est ici que nous allons dfinir notre


classe.

La mthode Constructeur associe une classe est


automatiquement appele lors de la dclaration d'un objet
de la classe. Cela permet de s'assurer que les traitements
d'initialisation de l'objet (affectation des membres, par
exemple) ne seront pas oublis par le dveloppeur.
La mthode Destructeur associe une classe est
automatiquement appele lors de la suppression de
l'objet (sortie de procdure dans laquelle l'objet a t
dclar). Cela permet de librer sans risque d'oubli les
ressources utilises par l'objet

Nous allons commencer coder les membres (o attributs de la classe) :

cercle est une Classe


PRIV
posx1
posy1
posx2
posy2
lenom

est
est
est
est
est

un
un
un
un
un

entier
entier
entier
entier
chane

FIN

Comme vous le voyez Cercle est une classe ayant 5 attributs privs (par analogie vous pouvez imaginer
5 variables) elles sont prives c'est dire qu'elles sont inaccessibles de l'extrieur de la classe (C'est le
principe de l'encapsulation).

- Priv : accs autoris depuis un code de la classe


- Protg : accs autoris depuis un code de la classe ou un code d'une classe drive
- Public (par dfaut) : accs autoris depuis n'importe quel code de la classe ou du projet.

http://www.btsig.org/

Jean-Luc Baptiste

Page 4 sur 7

Cours Windev numro 8

Modifions le constructeur :

PROCEDURE Constructeur(x1,y1,x2,y2,nom)
:posx1=x1
:posy1=y1
:posx2=x2
:posy2=y2
:lenom=nom

Le rle du constructeur est d'initialiser le futur objet avec ou sans paramtre.


Ici 5 paramtres sont passs (cest les 4 coordonnes que l'on fera saisir l'utilisateur ainsi que le nom
donn notre cercle).
Nous avons donc x1,y1,x2,y2 et nom. Ces variables vont tre affectes des variables de classe
prives (posx1,posy1). Comme ces variables sont privs, il faut les prfixer avec le caractre ":".

Crons la mthode de dessin :

Faites un clic droit sur Cercle et


validez Nouvelle mthode. Nommez l
Dessine.

Vous devriez, maintenant avoir ceci :

Vous pouvez voir ici tous les membres et mthodes


dfinis pour notre classe. Pour la symbolique des
icnes, je vous laisse consulter l'aide rubrique POO.

http://www.btsig.org/

Jean-Luc Baptiste

Page 5 sur 7

Cours Windev numro 8

Voici le code de la mthode Dessine :

PROCEDURE Dessine()
dDbutDessin(Depart.Zonedessin)
dCercle(:posx1,posy1,posx2,posy2,iRougeClair,iVertClair)
dTexte(:posx2,posy2,:lenom,iJauneFonc)

Explication du code :

// pour pouvoir dessiner on initialise la zone image


dDbutDessin(depart.Zonedessin)

// La procdure dCercle cr le cercle de coordonnes et couleurs dfinies


dCercle(:posx1,:posy1, :posx2, :posy2,iRougeClair,iVertClair)

//La fonction dTexte dessine un texte une position donne relative la zone image
dTexte(:posx2, :posy2, :lenom, iJauneFonc)

Voil notre classe est finie. Vous savez que WinDev vous permet de la visualiser au format UML ? On va
voir ? C'est parti : Cliquez sur Projet->Modlisation UML->Rtro-ingnierie du projet. Suivez l'assistant et
vous verrez le diagramme de classe correspondant votre classe.

Vous retrouverez ce diagramme dans lExplorateur de projet.

http://www.btsig.org/

Jean-Luc Baptiste

Page 6 sur 7

Cours Windev numro 8

La modification (ou l'ajout) d'un membre dans le diagramme sera rpercute immdiatement dans le
code et rciproquement, essayez voir !
Il nous faut maintenant crer une instance de cette classe pour la mettre en uvre. C'est le code du
bouton Action qui va raliser tout a.

moncercle est un objet cercle(Lposx,Lposy,Lposx1,Lposy1,Nom)


moncercle:Dessine()

Etudions ce code :
La premire ligne instancie un objet moncercle de type Cercle en passant au constructeur les 5
paramtres.
Ensuite, nous excutons la mthode "dessine" de l'objet.

Passons la pratique :

Renseignez les champs, cliquez sur le bouton et oh.!!! Le Zouli dessin. Vous tes vraiment trs fort !
Trve de plaisanterie, vous avez tout compris ? Comme vous le voyez, ce nest pas trs compliqu de
crer et manipuler une classe avec WinDev. Pour le prochain cours nous allons monter d'une gamme dans
la thorie objet, donc refaites ce cours si tout n'est pas clair et au plaisir de vous revoir !

http://www.btsig.org/

Jean-Luc Baptiste

Page 7 sur 7

Vous aimerez peut-être aussi