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

C# Discussion :

Les classes en C#


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Par défaut Les classes en C#
    Bonjour à tous.
    J'ai 74 ans et j'essaie avec plus ou moins de réussite d'apprendre le C#.
    Ma question est la suivante, dans le tutoriel Apprentissage du langage C# que j'étudie sur Developpez.com.
    Au chapitre des objets temporaires, il y a cette déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Personne(new Personne("Jean", "Dupont", 30)).Identifie();
    le Identifie je l'ai bien compris c'est un appel à une fonction qui s'appelle Identifie
    new Personne est la création d'un nouvel objet de la classe Personne.
    Mais c'est sur new Personne(new Personne("Jean", "Dupont", 30)) que je bute.
    Est-ce qu'une âme charitable pourrait m'expliquer ce que cela signifie, de façon pas trop compliquée s'il vous plait.
    Merci à l'avance.
    Papyclaude

    PS: je viens corriger quelques fautes d'orthographe, mais soyez indulgent si vous en trouvez d'autre.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    bonsoir Papy en C# (comme en Java d'ailleurs) on ne manipule que des classes d'objets.
    Donc il faut obligatoirement utiliser le mot clé new pour créer /instancier un objet.

    Pour faire une forme d'analogie c'est comme un moule à gaufre et la pâte.
    La classe étant le moule et les éléments de la classe la pâte elle-même..

    ou bien comme en mathématiques il y a des ensembles et des nombres inscrits dans les ensembles.

    "jean" "Dupont" ce sont des paramètres pour initialiser une instance de classe.
    Si la classe n'est pas instanciée il y aura une exception.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Par défaut
    D'accord , mais c'est le" new Personne(new Personne " que je ne comprend pas , sachant que Personne est le nom de la Class.
    En tout cas merci d'avoir répondu Mat.M
    Cordialement.
    Papyclaude

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    Citation Envoyé par Papyclaude51 Voir le message
    D'accord , mais c'est le" new Personne(new Personne " que je ne comprend pas , sachant que Personne est le nom de la Class.
    ce qu'il y a c'est qu'on a deux instanciations de classe Personne.
    Mais ce n'est pas vraiment utile un seul new suffit je pense que l'auteur du tuto fait deux new dans un but pédagogique.
    La voie normale pour instancier une classe c'est par exemple Personne UnePersonne=new Personne() ;UnePersonne.methode();
    Mais puisque c'est une allocation temporaire il n'y pas besoin de déclarer de variable UnePersonne de type Personne

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    ce qu'il y a c'est qu'on a deux instanciations de classe Personne.
    Mais ce n'est pas vraiment utile un seul new suffit je pense que l'auteur du tuto fait deux new dans un but pédagogique.
    La voie normale pour instancier une classe c'est par exemple Personne UnePersonne=new Personne() ;UnePersonne.methode();
    Mais puisque c'est une allocation temporaire il n'y pas besoin de déclarer de variable UnePersonne de type Personne
    Merci pour cette réponse Mat.
    En fait je pense avoir compris cette nuit.
    Il fait 3 choses en même temps .

    Dans new Personne(new Personne("Jean", "Dupont", 30)).Identifie();
    Il crée une nouvelle instance de Personne , dans la foulée , il l'initialise puis la transmet a la fonction Identifie.
    Il me faut un peu de temps pour comprendre les choses.
    A mon age , les neurones ne sont plus aussi rapides qu'a 20 ou 30 ans.
    Cordialement
    PapyClaude

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    bonjour oui c'est une création dans la foulée.
    Dans le corps d'une méthode on déclare généralement une variable instanciée par la suite.
    La création sur le tas c'est utile pour instancier une classe qui va être utilisée temporairement avec une courte durée.

    Sinon pour apprendre je conseille plutôt de fonctionner en mode projet

  7. #7
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Personne(new Personne("Jean", "Dupont", 30)).Identifie();
    est la condensation du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Personne p1 = new Personne("Jean", "Dupont", 30);
    Personne p2 = new Personne(p1);
    p2.Identifie();

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 011
    Par défaut
    Petite correction sur ta compréhension du code et sur la réponse de Mat qui sont toutes deux fausses.

    Citation Envoyé par Papyclaude51 Voir le message
    Merci pour cette réponse Mat.
    En fait je pense avoir compris cette nuit.
    Il fait 3 choses en même temps .

    Dans new Personne(new Personne("Jean", "Dupont", 30)).Identifie();
    Il crée une nouvelle instance de Personne , dans la foulée , il l'initialise puis la transmet a la fonction Identifie.
    Il me faut un peu de temps pour comprendre les choses.
    A mon age , les neurones ne sont plus aussi rapides qu'a 20 ou 30 ans.
    Cordialement
    PapyClaude
    Citation Envoyé par Mat.M Voir le message
    bonjour oui c'est une création dans la foulée.
    Dans le corps d'une méthode on déclare généralement une variable instanciée par la suite.
    La création sur le tas c'est utile pour instancier une classe qui va être utilisée temporairement avec une courte durée.

    Sinon pour apprendre je conseille plutôt de fonctionner en mode projet

    Le code new Personne(new Personne("Jean", "Dupont", 30)).Identifie(); ne transmet pas d'instance de Personne à la méthode Identifie puisque celle-ci n'a pas de paramètre.


    Ce qu'on a c'est l'instanciation d'une personne à partir de l'instance d'une autre personne afin de (probablement) copier ces informations.
    Et ensuite, on appelle la méthode Identifie mais sur la seconde instance . Ce qui implique que la méthode Identifie n'identifie pas Jean Dupont mais une copie de Jean Dupont.

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

Discussions similaires

  1. [Taglibs] Utiliser les classes css ?
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/05/2007, 01h31
  2. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  3. Les classes ne s'affichent pas
    Par karl3i dans le forum MFC
    Réponses: 8
    Dernier message: 26/01/2004, 14h52
  4. delocaliser les classe
    Par otb82 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 17/11/2003, 08h54
  5. Les classes amies en Delphi
    Par Bruno75 dans le forum Langage
    Réponses: 3
    Dernier message: 02/09/2003, 19h34

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