Share your opinion
WIDGETS GAMBAS
GAMBAS 3 SOFTWARES
TUTORIALS
Library
|
Lessons - lesson 2
French only sorry...COURS NUMERO 2
DECOUVERTE DE LA POO Commencer par ouvrir gambas et créer un nouveau projet Application en ligne de commande : nom du projet -> ConfBase INTRODUCTION Donc, Gambas est comme vous le savez, un langage très orienté objet. Dans la vie courante ces objets sont facilement repérable, et il en devient facile de les modéliser. La programmation Orienté Objet est un concept qui s'apparent à tout (presque du moins) type de projet. lorsqu'on concoit un projet et qu'on utilise un modèle objet, il est impératif (pas nécessairement obligatoire mais vraiment recommandé) de fonder la base, un plan de l'ensemble du projet a savoir : - Les taches principale que doit réaliser l'applications - la structure des données qui seront manipulés et (mais ca, ca restera pour les programmeurs expérité de la crevette bleue ) un ensemble permettant d'étendre le programme pour de futur améliorations sans devoir quasiment retoucher au 3/4 du code ! donc la POO (=Programmation Orienté Objet) est un concept à part du langage de programmation. Un monde assez nouveau pour les débutants où c'est une notion à savoir exploiter. Penser objet, c'est important pour tirer parti de Gambas. Lorsque votre esprits commencera a concevoir des objets dans votre projet, alors vous serez moins étonné de trouver la solution vous même pour effecter tel tache sur tel contrôle (Bouton, [Autre...] ) Maintenant qu'on a exploité et découvert le terrain du monde de la POO, un projet Gambas est un ensemble de classe. A savoir, des briques, des objets qui vont s'assembler pour former votre programme La manipulation d'objets doit être plus que courant. Voici maintenant un exemple de modélisation à partir d'un objet quelconque : on va choisir simplement un être humain qui (bon certes, on est pas des objets mais passons cette remarque temporairement ) possède pas mal d'informations en lui même et établit plusieurs taches toutes aussi importante et utile .les taches sont facilement repérable, ce sont les Actions qui sait effectuer tels que : - marcher - parler - manger - dormir pour ne citer qu'eux à titre d'exemple, les informations (les données) qu'il a, c'est son état : - Son age - son nom - ses mots (lorsqu'il parle) - sa taille ... ect dans un modèle OBJET, on peut modéliser celà : on **encapsule** ces données et ces actions, le tout sous le jolie nom Humain Donc maintenant, garder votre Gambas à porter de main, nous allons effectuer une premiere classe commencer dans votre éditeur par : - faire un clic droit sur le dossier "Classes" puis -> "Nouveau" -> "'Classes..." Nom de la classe : Humain Dans l'arborescence de l'IDE, vous voyez désormais que vous obtenez un fichier .class , plus précisement de nom Humain.class Pour certains d'entre vous, c'est la première fois que vous voyez une classe dans votre projet . On va commencer par modéliser ce dont on a parlé juste avant a partir d'une langue naturelle, d'informations relevé sur une feuille et réfléchi auparavant, on va pouvoir transmettre celà dans un langage informatique qui nous permet d'établir cette objet et ainsi de profiter pleinement de la POO ! une classe en informatique c'est tout simplement une structure, un ensemble d'informations { données, Actions } Dans d'autre classe il existe des mots clés pour définir une classe. Exemple en ruby : ' class Humain ... end ' en Gambas, la définition de la classe est le fichier en lui même donc aucun mot clés comme "class" n'est nécessaire Un contrôle est aussi une classe ? INFORMATION : EN REALITE, IL EXISTE UN MOT CLE 'CLASS' EN GAMBAS MAIS IL NE SERT QU'A UNE UTILISATION PARTICULIERE QUE NOUS VERRONS PLUS TARD, LORSQUE NOUS MAITRISERONS LA POO. tout ce qui touche à l'interface graphique, on met ca de coté car l'interface graphique et un autre monde qui regorge la POO avec d'autre notion tels que la programmation événementielles et il existe plusieurs état d'un objet en "GUI" si je peux dire ça de facon simple. GUI ??? Graphical User Interface = Inteface utilisateur Graphique Double cliquez sur la classe Humain que nous avons créé à l'instant vous possédez déjà un commentaire : ' Gambas class file en début de fichier. Pour les anti-english celà signifie -> fichier de classe Gambas Ce qui est intéressant et les questions qui vont vite venir vous encombrer l'esprit c'est : - Comment en langage informatique on modélise une Action ? - et comment les données sont modélisés ? Les réponses sont à la base de ce dont vous avez appris jusqu'à maintenant, à savoir - Les données ---> Les variables - Les Actions ---> Les fonctions/procédures. Il est a noté qu'en programmation orienté objet, le nom d'une fonction et procédure se dit ---> METHODE !!! C'est très important, le terme fonction et procédure sont réservés à la programmation impérative. Chose qui nous intéresse pas vraiment vu que Gambas est orienté-objet. Donc Si on reprends nos informations, voilà ce qu'on obtiens : - Son age - son nom - ses mots (lorsqu'il parle) - sa taille son age -> est un entier son nom -> une chaine de caractère ses mots (qu'on dira 'parole' juste aprés) -> une chaine de caractère également et sa taille -> un floattant (nombre décimal) Si vous savez déclarer une variable, ce qui suit sera un véritable jeux d'enfants Il y a une regle FONDAMENTALE en POO : (retenez la bien car la POO regorge 3 principes de base à ne pas négliger) - Les données doivent toujours être encapsuler qu'est-ce que ca veut dire ? Ca signifie que les données ne doivent pas être visible de l'extérieur ! *** Hola mais attend ca commence a devenir flou ! Sur notre etre humain dans la vie reelle ca donne quoi ? Effectivement ca donne quoi ? ca veut dire quoi que les membres (données) ne doivent pas être accesible de l'extérieur pour faire plus simple encore, changeons notre être humain en voiture. Votre voiture est un objet, les données qu'elle possède sont quoi à votre avis ? - Le moteur, - le niveau d'huille, - les cylindres, ...ect et les actions ? - les 3 pédales par exemple et bien sur, vous avez un capots qui cache toute la mécanique et si vous voulez accélérer ? vous ne lever pas le capot en touchant les fils à l'intérieur pour augmenter la vitesse ! les données de la voiture sont encapsulé ! *** Mais alors, dit nous comment on fait pour modifier ces données dans ce cas *** Pour jouer avec vos 'données' de votre voiture, vous utiliser une interface, qui sont on le rapelle les 3 pédales (3 Actions) ces actions vont travailler sur les données, c'est EUX qui changent l'état de vos variables ! pour définir l'accessibilité d'une variable, on possède 2 mots clés qui sont : - PRIVATE - PUBLIC qui, s'en va s'en dire, se relève relativement simple à comprendre . PRIVATE -> privé -> réservé qu'a la classe PUBLIC -> publique -> disponible de l'extérieur de la classe pour éviter de vous perdre, référez-vous toujours à votre voiture dans les débuts donc étant donnée qu'on sait qu'on ne doit pas voir les données et encore moins pouvoir les modifier de l'extérieur on les met en PRIVATE ce qui donne : ' Gambas class file PRIVATE age AS Integer PRIVATE taille AS Integer PRIVATE parole AS String PRIVATE nom AS String allez y taper moi ça dans votre éditeur je continue, maintenant, les actions non plus à notre voiture mais à notre bon vieux être humain Gorge (Oui pourquoi pas ? ) , on sait que c'est des 'fonctions/procédures' donc des SUB ou FUNCTION. par contre, si vous avez bien suivit jusque là quelle sera la nature d'accessibilité de nos méthodes ? si les données ne doivent pas être directement accessible à l'utilisateur, les actions quant a elle doit être PUBLIC de manière qu'on puisse modifier ses variables "static" c'est pas du ressort de ce court . Je n'en ai pas parlé donc pas possible que ce soit la réponse . Je vais prendre un autre exemple relativement classique mais utile VOTRE TELE ! sur votre télé vous avez des boutons pour changer de chaine, monter le son ou le baisser, éteindre ou allumer la télé et à l'intérieur de la télé vous avez tout plein de chose électroniques qui communique entre eux pour vous donner une image, pour changer la chaine, pour augmenter le son ect Trés bien, quelle accessibilité donneriez-vous à ces boutons disponible sur votre télévision ? PRIVATE ou PUBLIC ? PUBLIC Pourquoi ? Tout le monde peut les actionner En fait, en POO le programmeur est à la fois CREATEUR et CLIENT c'est à dire qu'il fait les plan, il construit la classe, la bases. Et client à la fois lorsqu'il créera des objets à partir de cette classe. imaginez un moule à gateaux vous crée d'abord la classe de ce moule et a partir de ce moule vous pouvez créé autant de gateau que vous voulez autant d'objets que vous voulez on va revenir a nos actions de notre être humain de manière assez simple, une méthode est presque toujours PUBLIC elle peut aussi être privé c'est à dire dans ce cas qu'on donne pas accés de l'extérieur. Généralement une méthode privé sert juste au fonctionnement interne de l'objet on va commencer par coder une action simple la méthode Parler avec un paramètre ... ce que l'utilisateur veut que l'humain dise voici la méthode a insérer en dessous des variables membres : PUBLIC SUB parler(mot AS String) PRINT mot END tout le monde connait bien les procédures et les fonctions ? une fonction n'est rien d'autre qu'une procédure à part qu'elle renvoie une valeur maintenant, on plonge dans le MMain c'est à dire le module INFORMATION : UN MODULE EN GAMBAS N'EST RIEN D'AUTRE QU'UNE CLASSE MAIS ___ STATIQUE vous dans tous dans le PUBLIC SUB Main() ? Main() est une procédure principale, c'est par là que va donc commencer notre programme on va dire commencer par savoir afficher du texte à l'écran tout simple taper PRINT "Vive Gambas !" et appuyez sur F5 résultat est affiché dans la console de l'IDE en bas maintenant expérimentons un peu le PRINT taper celà : PRINT "VivenGambas" Ca renvoie les mots à la ligne le n <- est un caractère d'échapement c'est à dire qu'il est interprété d'une certaine manière lorsque GB lit ceux-ci il y a plusieurs caractère d'échapement tels que la tabulation ect mais c'était à titre d'information. maintenant on va s'intéresser à l'autre coté de la POO le coté "CLIENT" de toute à l'heure. Donc on va mouler un humain a partir du four géant ! bien maintenant supprimez la ligne PRINT dans le Main() Pour créer un objet à partir de notre classe, en GB (comme dans tout autre language Objet) ca se fait comme si vous déclarer une variable donc étant donnée qu'on est dans notre Main() et pas à l'extérieur, on va utiliser le mot clé DIM si on serai à l'extérieur de Main() on utiliserait PUBLIC ou PRIVATE le principe et le même mais on verra celà plus tard également on va s'intéresse proprement dite à la création d'objets explications sur le DIM DIM gorge AS NEW Humain sur une variable normal on a par exemple : DIM age AS Integer soit DIM leNomDeLaVariable AS SonType Ici c'est presque pareil à l'exception qu'il y a le NEW en plus ce qui indique Nouvelle objet Humain -> étant la classe qu'on a fait juste avant, et donc le type d'objet qu'on crée. alors maintenant, c'est là (grace à l'IDE) que vous allez capter le PRIVATE et PUBLIC notre ami george étant un objet de notre classe Humain on peut créer si on veut un autre humain si ca nous chante ! DIM bernadette AS NEW Humain pour utiliser ses actions, ca se présente comme ça syntaxiquement : objet.methode() les parenthèse sont facultatif, et sont obligatoire si des paramètres de la méthode sont présente dans notre cas, on va faire parler notre ami gorge, on sent qu'il a envie de parler celui là !! george.parler("coucou toi l'ami") entrez ca à la MAIN !! dans votre éditeur à partir du . (POINT) , Gambas est assez intelligent (bien qu'une crevette vous voyez qu'il y a un neurone qui se trabale dans les environs ) pour déterminer ce que l'objet peut faire ! ici dans notre cas, notre ami george sait parler on peut utiliser la touche TAB pour compléter la méthode (très pratique vous verrez ) on ouvre ensuite une parenthèse car comme on la fait dans la classe on a besoin de savoir ce que notre ami george veut dire ! et on met notre chaine de caractères entre guillemet. george.parler("coucou toi l'ami") et appuyer sur F5 pour admirer le résultat maintenant tiens, on va retourner dans notre classe Humain et on va changer l'age en PUBLIC PUBLIC age AS Integer maintenant si vous retournez dans l'éditeur, et que vous entrer george. <- ici la liste arrive et vous verrez certainement 'age'en rose bon et bien maintenant elle est accesible de l'extérieur ! vous captez maintenant le PRIVATE et le PUBLIC ? alors maintenant une question pourrait vous venir en tete on vois pas les autres car elles sont private *** d'accord je vois maintenant comment rendre la visibilité d'un membre mais.. pourquoi d'ailleurs le principe est qu'on ne doit pas modifier de l'extérieur les variables ? *** réponse : tout simplement imaginez que quelqu'un vient qui touche directement a votre voiture et met niveau carburant à 90 litres alors que le réservoir n'en contient que 40 ou 50 .. aie aie aie ca déborde de partout ! d'ou le pourquoi on doit passer par une méthode pour modifier les variables interne à l'objets. De cette manière on peut établir des vérification tels que par exemple : PUBLIC SUB mettreEssence(litre as Integer) IF litre > 50 THEN PRINT "Le réservoir est déjà plein !" ELSE niveauEssence = litre ENDIF sachant que niveauEssence étant une variable PRIVATE pour la classe ainsi si on a un objet voiture exemple maVoiture, alors si on veut mettre de l'essence : maVoiture.mettreEssence(80) ca va me retourner ---> Le réservoir est déjà plein ! et on ne fait pas n'importe quoi avec l'objet Il faut donc TOUJOURS utiliser le PRIVATE c'est l'encapsulation, un des principes de la programmation orienté objet !! doit apparaitre du coté client, quasiment que des méthodes, Actions pensez au bouton de la télé ! dans l'IDE qd vous avez eu la liste george. <- ce sont les boutons de l'objet, ce qui est disponible CONCLUSION : [le vocabulaire a retenir : lorsqu'on crée un objet d'une classe, on dis qu'on instancie un objet une **instance** de classe n'est qu'un objet crée de la classe donc si a partir de la classe Voiture on a crée 3 objets -> voitureMaison, voitureBoulot ... ect on a 3 instances de la classe **Voiture** - Découverte de la programmation orienté objet - Créé une classe - Crée des objets à partir de nos classe en vocabulaire retenez : - Classe - Objet - Instance - principe de l'encapsulation - méthodes - variables membres en mot clés les découvertes sont : - PUBLIC - PRIVATE - NEW et surtout oubliez la GUI pour l'instant la console permet d'extraire le contenu le plus important la GUI est un cadeau dangereux Gambas offre une facilité incroyable pour gérer la GUI mais vous voyez derrière tous ça que la complicité est au rendez vous si on ne connais pas tout ces rudiments indispensable la GUI vous plonge dans plusieurs notions à connaitre A bientôt Creation date : 04/06/2009 @ 13:31 Reactions to this article
| QUICK MENU
SEARCH
LANGUAGE
COMPONENTS
Other
LANGUAGE
Where, who?
VISITS
visitors visitors online ARCHIVES GAMBAS 1/2
|