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

Langage Java Discussion :

[débutant] constructeur en java


Sujet :

Langage Java

  1. #1
    zui
    zui est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut [débutant] constructeur en java
    Bonjour à tous,

    Je créé une classe Compte à l’intérieur de la quelle je déclare un constructeur qui reçoit en paramètre un montant et l’initialise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Class Compte
    {
         private int montant ;
     
         public Compte(int montant)
         {
                 this.montant = montant ;
         }
    }
    Dans une fonction main, j’aimerais savoir la différence entre ces 2 instructions en supposant que les variables ont déjà été déclarées précédemment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             O1 = new Compte(100) ;
             O2 = new Compte[100];
    S'il ya différence dans quel cas peut-on utiliser l'une ou l'autre instruction?
    Merci. Vos contributions sont les bien venues.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut


    l'écriture déclare un tableau de 100 Compte et n'a rien à voir avec l'instanciation d'un objet Compte.

    Pour instancier un objet Compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte compte = new Compte(100);
    Pour déclarer un tableau de x Compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte[] compteArray = new Compte[x];
    sans oublier qu'il faut instancier chaque élément du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i = 0; i < x; i ++) {
         compteArray[i] = new Compte(100);
    }

  3. #3
    zui
    zui est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    Parfait.
    Ca veut dire alors que :

    O2 = new Compte[100]; --> C'est déclarer un tableau de 100 Compte

    O1 = new Compte(100); --> ne veut rien dire et que si on veut instancier la classe Compte il faut faire Compte compte = new Compte(100)

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par zui
    O2 = new Compte[100]; --> C'est déclarer un tableau de 100 Compte
    En effet, à condition que tu le déclares ainsi : Compte[] O2 = new Compte[100];

    Citation Envoyé par zui
    O1 = new Compte(100); --> ne veut rien dire et que si on veut instancier la classe Compte il faut faire Compte compte = new Compte(100)
    Si tu mets Compte devant O1, ce sera juste.

  5. #5
    zui
    zui est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    Merci pour vos réponses. Problème résolu.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Citation Envoyé par zui
    O1 = new Compte(100); --> ne veut rien dire et que si on veut instancier la classe Compte il faut faire Compte compte = new Compte(100)
    Pas tout à fait.

    En fait il y a deux étapes. La première consiste à déclarer l'objet :ici l'objet O1 est seulement déclaré et vaut null

    puis la deuxième consiste à instancier l'objet : En sachant que tu ne peus instancier un objet qu'après l'avoir déclaré.
    Enfin tu peus faire les deux en même temps (déclaration + instanciation) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte O1 = new Compte(100);

  7. #7
    zui
    zui est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    Merci à le y@m's pour cet éclaircissement.
    En effet, il ya deux façons de le faire comme il a dit.

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

Discussions similaires

  1. [JUnit] [Test][Débutant] Constructeur privé
    Par Shabata dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 12/01/2006, 15h45
  2. [Débutant]Constructeur et new/delete
    Par Geolem dans le forum C++
    Réponses: 5
    Dernier message: 02/12/2005, 21h11
  3. [Débutant(e)] Dessin JAVA
    Par JeanMi66 dans le forum Graphisme
    Réponses: 11
    Dernier message: 12/09/2005, 00h34
  4. [Débutant]Différence Delphi. / Java
    Par Pill_S dans le forum Langage
    Réponses: 15
    Dernier message: 16/08/2005, 21h43
  5. [JSP] [débutant] affectation variable java
    Par RENAULT dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/07/2004, 15h44

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