French [SOLUTIONNE] Notion de classes ?

Discussion in 'French Forum' started by lemonisdead, Feb 10, 2015.

  1. lemonisdead

    lemonisdead Well-Known Member Licensed User

    Bonjour à tous,

    Je suis très perdue à la lecture du tutoriel sur les classes (c'est une notion informatique que je n'ai jamais apprise).
    Mes recherches sur le web pour essayer de comprendre ce que c'est me mènent vers des cours assez compliqués.
    Et je n'arrive pas à appréhender la notion à partir de classes déjà écrites dans B4A (B4J ça va à peu près).

    Est-ce que par hasard vous auriez, un lien ou bien la référence d'un bouquin ou un "je ne sais quoi" qui me permettraient d'apprendre cette notion ?

    En outre, ai-je bien compris que la notion de classe me permettrait de générer des objets à partir d'un modèle défini ?

    Merci d'avance pour toute piste
     
    Last edited: Feb 10, 2015
  2. lemonisdead

    lemonisdead Well-Known Member Licensed User

    Après avoir écrit le sujet, j'ai eu une révélation comprenant que si j'arrivais à écrire une classe B4J je devais être capable d'en écrire une identique en B4A...
    Donc mes tentatives précédentes étaient buggées.
    Sujet clos. Merci :)
     
  3. klaus

    klaus Expert Licensed User

    As-tu regardé le chapitre 11 Class modules dans le User's Guide ?
     
    lemonisdead likes this.
  4. lemonisdead

    lemonisdead Well-Known Member Licensed User

    Bonjour Klaus,

    Oui effectivement mais il y a longtemps. Je vais également m'y replonger. Merci beaucoup :)
     
  5. Informatix

    Informatix Expert Licensed User

    Une classe, c'est un objet virtuel, c'est-à-dire que ça peut contenir des données et faire certaines choses, mais pas avant d'être instancié (d'avoir une existence concrète en mémoire). Un exemple va t'aider à y voir clair:
    J'ai une classe "ClsRond". ClsRond a deux propriétés (que je vais initialiser avec la fonction Initialize de la classe): position du centre, longueur du rayon. ClsRond a deux méthodes (deux subs): Initialize (obligatoire) et Dessiner. Le but de la classe est de dessiner des ronds. Tel quel, ClsRond n'occupe pas de mémoire et ne sert pas à grand chose car si j'appelle l'une des deux fonctions directement, je vais avoir une erreur. Il faut que je l'instancie. Exemple: Dim MonRond as ClsRond. Ainsi, un objet réel est créé avec les propriétés et les méthodes de la classe. A partir de là, je peux appeler Initialize, puis Dessiner.
    L'intérêt de la classe, c'est que je peux créer plusieurs objets différents sur le même modèle. C'est pourquoi on fait parfois une analogie entre les classes et les moules (à gâteau, pas les mollusques). En mettant de la pâte dans le moule, on obtient toujours la même forme. Chaque gâteau peut être décoré différemment ou mangé par des gens différents, ça n'a pas d'importance. Chaque objet a sa vie propre.
    Quand tu supprimes une instance de la classe (MonRond = null), tu ne supprimes pas la classe car la classe n'a qu'une existence virtuelle. Manger le gâteau ne supprime pas le moule.
    Cette façon de présenter les classes n'est pas très orthodoxe ni tout à fait exacte, mais j'espère qu'elle t'aura aidé à y voir plus clair.
     
    Laurent95, hbruno and lemonisdead like this.
  6. hbruno

    hbruno Member Licensed User

    "Cette façon de présenter les classes n'est pas très orthodoxe ni tout à fait exacte"
    ... mais j'aime bien quand même...
     
  7. Laurent95

    Laurent95 Active Member Licensed User

    Lollllll, excellent je ne m'étais jamais autant régalé en lisant un billet sur de la prog.
    Gourmand va ;)
     
    Informatix and lemonisdead like this.
  8. haddad

    haddad Member Licensed User

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice