IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

objet question hyper débutant


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 180
    Points : 107
    Points
    107
    Par défaut objet question hyper débutant
    Bonjour,

    Apreès consultation des tutos, je m essaye un peu à la POO sous delphi 8 mais si je comprend bien
    1) On ne sais pas créer de classe abstraite?
    2) On ne sais pas implémenter de méthode abstraite en y mettant une partie de code mais en obligeant à surcharger cette méthode

    Autre question j ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    type
      TPremier = class
        protected
          procedure Methode; virtual;
      end;
     
    procedure TPremier.Methode;
    var i : integer
    begin
      ...
    end;
     
    type
      TSecond = class(TPremier)
      protected
        procedure Methode; virtual;
      end;
     
    procedure TSecond.Methode;
    begin
      //Comment acceder à i???
    end;
    Comment puis je acceder à i dans TSecond.Methode?

    Et dernière question:
    si je declare des constantes dans TPremier, puis je les surcharger dans TSecond?

    D'avance merci

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 559
    Points : 3 951
    Points
    3 951
    Par défaut
    Salut

    1) Une classe abstraite est une classe dont une ou plusieurs méthodes ne sont pas définies, elles sont seulement déclarées et ne peuvent être définies que dans les classes dérivées, le comportement d'une classe abstraite n'est donc pas complètement connu et il n'est donc pas légitime d'instancier un objet à partir d'une classe abstraite.

    Petit exemple : la classe Animal est susceptible de se déplacer mais tu ne sais pas comment d'une façon générale (voler, marcher, ramper ou nager). Il devient possible de décrire le déplacement qu'au niveau des classes dérivées Poisson, Oiseau où le déplacement est relativement homogène mais ce n'est pas suffisant pour les Mammifère oùm les modes de déplacement sont variables (penses aux baleines, aux phoques et aux chauve-souris).
    Donc le déplacement est une opération polymorphique (plusieurs formes possibles) mais abstrait car il n'est pas possible de préciser ce qu'il fait au niveau le plus élévé de la hiérarchie de classe dans lequel il est introduit.

    2) Une méthode abstraite n'a pas d'implémentation par définition elle est juste déclarée en vue du polymorphisme. Si tu veux mettre du code, ta méthode est seulement virtuelle.

    3) la variable i en tant que variable locale de la méthode de l'ancêtre n'est pas accessible dans les descendants, si tu veux y avoir accès, il faut introduire i comme un attribut protégé de ta classe. Cela n'est cependant pas une bonne idée d'une manière générale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    type 
      TPremier = class 
     
        protected 
          i : Integer;
          procedure Methode; virtual; 
      end; 
     
    procedure TPremier.Methode; 
    //var i : integer 
    begin 
      ... 
    end; 
     
    type 
      TSecond = class(TPremier) 
      protected 
        procedure Methode; virtual; 
      end; 
     
    procedure TSecond.Methode; 
    begin 
      //  i est alors accessible
    end;
    4) La déclaration de constantes dans une classe est possible dans Delphi pour .Net, je ne connais pas D8 mais je sais qu'il y a des références sur ce site (cherches un peu, j'ai pas le temps). En ce qui concerne ce type de surcharge, je ne peux donc pas te répondre.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 180
    Points : 107
    Points
    107
    Par défaut
    Un super grand merci pour tes réponses....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petite question de débutant Instance d'Objet
    Par galileogis dans le forum Silverlight
    Réponses: 16
    Dernier message: 07/06/2010, 11h11
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo