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

avec Java Discussion :

demande conseil sur ce prg


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut demande conseil sur ce prg
    bonjour
    j'ai essayé ce prg suivant
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    package Essaie;
    public class Cube1
    {
    int length;
    int breadth;
    int height;
     
    public int getVolume()
    {
    return (length*breadth*height);
    }
    Cube1()
    {
    this(10,10);
    System.out.println("Finished with default constructor");
    }
    Cube1(int l,int b)
    {
    this(l,b,10);
    System.out.println("Finished with parameterized constructor having 2 params");
    }
    Cube1(int l,int b,int h)
    {
    length=10;
    breadth=10;
    height=10;
    System.out.println("Finished with parameterized constructor having 3 params");
    }
    }
    package Essaie;
    public class Rectangle
    {
    public static void main(String[]args)
    {
    Cube1 cubeObj1,cubeObj2;
    cubeObj1=new Cube1();
    cubeObj2=new Cube1(10,20,30);
     
    System.out.println("volume of Cube1 is:"+cubeObj1.getVolume());
    System.out.println("volume of Cube2 is:"+cubeObj2.getVolume());
    }
    }
    le output ce ce prg est le suivant
    Finished with parameterized constructor having 3 params
    Finished with parameterized constructor having 2 params
    Finished with default constructor
    Finished with parameterized constructor having 3 params
    volume of Cube1 is:1000
    volume of Cube2 is:6000

    mes questions sont suivantes:
    1.pourquoi output est désordonné, (au lieu de avoir comme ceci)
    Finished with default constructor
    Finished with parameterized constructor having 2 params
    Finished with parameterized constructor having 3 params
    2.et pourquoi j'ai deux fois la ligne suivante dans l'output?
    Finished with parameterized constructor having 3 params

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    regarde le cours de java pour savoir ce que fait this(paramètres) dans un constructeur, et tu auras ta réponse.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Faiche Voir le message
    regarde le cours de java pour savoir ce que fait this(paramètres) dans un constructeur, et tu auras ta réponse.
    Un peu trop sévère comme réponse !

    Sinon, dans ton main tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    cubeObj1=new Cube1();
    cubeObj2=new Cube1(10,20,30);
    ...
    On déroule le prog et on voit ce que ça donne :
    1) cubeObj1=new Cube1(); ==> Création d'une instance de Cube1 et appel du contructeur par défaut. Dans le corps de celui-ci, tu fais appel à this(...,...) avant le print. this (...,...) est en réalité l'appel au constructeur ayant deux paramètres en entrées et donc va s'exécuter avant de faire le print !
    De même, dans le code de Cube1(...,...), tu fais appel à this(...,...,...) avant le print. Et donc même principe, on entre dans le Cube1(...,...,...) avant le print.
    Une fois dans le Cube1(...,...,...), là on affiche le premier print donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Finished with parameterized constructor having 3 params");
    puis les autres exactement comme tu as mentionné ici :
    le output ce ce prg est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Finished with parameterized constructor having 3 params
    Finished with parameterized constructor having 2 params
    Finished with default constructor
    Finished with parameterized constructor having 3 params
    volume of Cube1 is:1000
    volume of Cube2 is:6000
    Enfin, pour le dernier print qui se répète deux fois, c'est tout à fait normal car t'as instancié un objet Cube1 en appelant le constructeur ayant 3 params Cube1(...,...,...). Donc, son print s'exécute !

    J'espère que t'as un peu saisi !

Discussions similaires

  1. Demande conseil sur livre
    Par tibofo dans le forum Livres
    Réponses: 1
    Dernier message: 21/11/2008, 15h08
  2. demande conseil sur architecture bdd
    Par halop dans le forum Administration
    Réponses: 2
    Dernier message: 16/07/2007, 15h52
  3. [POO] Demande conseils sur la POO avec php5
    Par tigunn dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2007, 14h44
  4. Réponses: 4
    Dernier message: 14/10/2006, 23h38
  5. demande conseil sur le ComboBox
    Par stoph23 dans le forum Flash
    Réponses: 1
    Dernier message: 01/06/2006, 20h56

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