8
COURS WINDEV NUMERO 8 15/02/2015 La Programmation Orientée Objet Création d’une classe. Instanciation d’un objet. Diagramme Uml. Fonctions de dessins. …etc…

conception des ecran sous windev

Embed Size (px)

DESCRIPTION

cas pratique pour maitrise le développement sous windev

Citation preview

  • 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

    http://www.btsig.org/ Jean-Luc Baptiste Page 1 sur 7

    Cours Windev numro 8 V E R S I O N 1 9

    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

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 2 sur 7

    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 :

    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.

    Champ image (nom : Zonedessin).

    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.

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 3 sur 7

    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.

    Voil le rsultat :

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

    Clic Droit->Nouvelle classe. Nommez l cercle.

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 4 sur 7

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

    cercle est une Classe PRIV posx1 est un entier posy1 est un entier posx2 est un entier posy2 est un entier lenom est un 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.

    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

    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.

    C'est ici que nous allons dfinir notre classe.

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 5 sur 7

    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 :

    Vous devriez, maintenant avoir ceci :

    Faites un clic droit sur Cercle et validez Nouvelle mthode. Nommez l Dessine.

    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.

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 6 sur 7

    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.

  • Cours Windev numro 8

    http://www.btsig.org/ Jean-Luc Baptiste Page 7 sur 7

    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 !