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

VB.NET Discussion :

Création d'une classe


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut Création d'une classe
    Bonjour, dans cet exemple, pourquoi est-il nécessaire d'avor plusieurs constructeurs ? Je ne comprends pas....

    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
    26
    27
    28
    29
    30
    31
    32
    Public Class Personne
     
        Private p_nom As String
        Private p_prenom As String
        Private p_naissance As Date
        Private p_photo As Image
     
        Public Sub New(ByVal n As String, ByVal p As String, ByVal na As Date)
            nom = n
            prenom = p
            naissance = na
        End Sub
     
        Public Sub New(ByVal n As String, ByVal p As String)
            nom = n
            prenom = p
            naissance = Date.Today
        End Sub
     
        Public Sub New(ByVal n As String, ByVal p As String, ByVal na As Date, ByVal pic As Image)
            nom = n
            prenom = p
            naissance = na
            photo = pic
        End Sub
     
        Public Sub New(ByVal n As String, ByVal p As String, ByVal na As Date, ByVal ch As String)
            nom = n
            prenom = p
            naissance = na
            photo = Image.FromFile(ch)
        End Sub

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    "Nécessaire" ?! non ce n'est pas nécessaire ; on peut le faire mais on est pas obligé. Quant au pourquoi avoir plusieurs constructeurs, pour avoir plusieurs moyen de construire son objet.

    Sinon plutôt que d'ouvrir tout un tas de sujet de ce type il serait peut-être judicieux de lire un tutoriel par exemple celui présent ici

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En plus celui qui a pondu ce code devrait apprendre à nommer correctement ses paramètres car là ça veux pas dire grand chose ! Sans compter l'affectation plus que douteuse à des variables membres qui n'existent même pas !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut
    Mais pourquoi est-ce que je ne peux pas affecter à une variable que je crée dans le formulaire une instance de la classe, comme ça par exemple :

    p = New Personne()

    au lieu de créer des constructeurs dans la classe elle-même.

    Quelle utilité de créer des constructeurs dans la classe plutôt que d'affecter à une variable des instances de la classe dans le code principal du formulaire ?

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En réalité tu devrais étudier la POO avant tout... Lorsque tu fait
    Tu utilise un constructeur par défaut donc avec aucun paramètre. Il me semble qu'en VB si tu définis des constructeurs avec paramètres, tu cache d'office le constructeur par défaut, c'est le cas dans certains langages il me semble. Le fait d'avoir plusieurs constructeurs te permet d'instancier une classe suivant différents critères donc par rapport aux nombre et type d'arguments.

    Tu pourrais avoir une classe Voiture avec des constructeurs qui soit veulent juste la marque, le nombre de portes et la puissance, d'autres avec la couleur en plus, etc.. Si la classe est définie de cette manière et bien elle s'utilise comme telle alors faut pas chercher plus loin, s'il y a des paramètres dans les constructeurs, tu utilises celui que tu semble le plus approprié selon les paramètres, donc les données à ta disposition pour créer les instance de ta classe !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par wallace27 Voir le message
    Mais pourquoi est-ce que je ne peux pas affecter à une variable que je crée dans le formulaire une instance de la classe, comme ça par exemple :

    p = New Personne()

    au lieu de créer des constructeurs dans la classe elle-même.
    si tu n as pas de constructeur dans la classe personne alors tu ne pourras pas créer d objet(New personne) !
    Quelle question......o_O

    Quelle utilité de créer des constructeurs dans la classe plutôt que d'affecter à une variable des instances de la classe dans le code principal du formulaire ?
    Si tu ne crees pas de constructeur alors tu ne crées pas d'objet donc pas d'instance de classe ........donc autant utiliser une classe avec des methodes shared
    ....

    brefffff ....un peu de lecture ne te fera pas de mal.....si tu veux obtenir des reponses a tes questions...

    ++

  7. #7
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    si tu n as pas de constructeur dans la classe personne alors tu ne pourras pas créer d objet(New personne) !
    On est d'accord sur le fond mais je vais chipoter sur la forme
    Techniquement parlant ce cas ne figure ne peut pas se présenter (pas pour cette raison en tout cas); il y aura toujours au moins un constructeur.
    Soit aucun n'a été mis explicitement et là on a toujours le constructeur par défaut, soit on en a au moins écrit un (avec ou sans arguments) et là on peut l'utiliser (sous réserve qu'il soit visible par le consommateur de la classe, c'est justement le seul cas où on peut pas utiliser un constructeur)

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

Discussions similaires

  1. Création d'une classe ASP (connection & recordset)
    Par polothentik dans le forum ASP
    Réponses: 1
    Dernier message: 12/03/2008, 00h46
  2. [POO] création d'une classe de connexion
    Par artotal dans le forum Langage
    Réponses: 1
    Dernier message: 14/02/2008, 12h01
  3. Réponses: 3
    Dernier message: 06/05/2007, 19h46
  4. [C++] Création d'une classe dans un fichier
    Par Pfeffer dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/05/2007, 15h49
  5. Création d'une class contenant un TEdit (Débutant)
    Par Dereck07 dans le forum Delphi
    Réponses: 5
    Dernier message: 01/05/2007, 17h02

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