<java>demande conseil sur ce prg

bonjour
j'ai essayé ce prg suivant

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:1000

mes questions sont suivantes:
1.normalement volume of cube2 is:6000; pourquoi j'ai 1000,où je puis faire erreur?
2.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
3.et pourquoi j'ai deux fois la ligne suivante?
Finished with parameterized constructor having 3 params

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. pour le question n°1 j'ai trouvé la réponse
    volume of Cube2 is:6000
    aidez moi pour les questions restant
    1. oui,j'en train d'apprendre java, peut tu m'expliquer s'il te plaît
      1. en premier t'appelles le constructeur par défaut, sans parametre.

        ce constructeur appelle lui meme le constructeur a 2 parametres.

        cet autre constructeur appelle quant a lui celui a 3 parametres.

        celui ci affiche "blablabla 3 parametres", et une fois son execution finie, ça revient dans le second constructeur, qui affiche "blablabla 2 parametres", et une fois finie, ça revient dans le premier constructeur qui affiche "blablabla défault".
        et après ça affiche "blablabla 3 parametres" car tu crée un objet en appellant directement le constructeur a 3 param.

        c'est linéaire :

        maFonction()
        {
        system.out.println("avant blablabla");
        blablabla();
        system.out.println("après blablabla");
        }

        blablabla()
        {
        system.out.println("pendant blablabla");
        }

        ça va t'afficher :
        avant blablabla
        pendant blablabla
        après blablabla