Les paramétres d'un constructeur

mafia_boy Messages postés 109 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
ma question est simple, comment mettre en paramètre d'un constructeur, un nom d'une classe ? Par exemple, je suis dans une classe Rectangle (qui a comme attributs largeur et longueur) et on m'a demandé de créer un constructeur "Rectangle(Rectangle)" . Prière de me répondre le plus vite que possible et merci.

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Il n'y a aucun piège, c'est comme tous les autres constructeurs :

    public Rectangle(int largeur, int longueur)
    {
        ...
    }
    
    public Rectangle(Rectangle r)
    {
         ...
    }
    0
  2. mafia_boy Messages postés 109 Statut Membre 1
     
    oui merci je m'en suis rendu compte :
    public Rectangle(Rectangle r){
    this.longueur = r.longueur;
    this.largeur = r.largeur;
    }
    mais à l'appel du constructeur dans une classe Test, j'ai pas eu d'erreur mais lors de l'exécution, j'ai comme résultat 3 lignes rouges mais toujours pas de résultat concernant mon exercice ! Voilà ma classe test si ça peut t'aider :

    public class TestRectangle {
    public static void main(String args []){
    Rectangle r1 = new Rectangle();
    r1.setLongueur(4);
    r1.setLargeur(4);
    Rectangle r2 = new Rectangle(5,3);
    Rectangle r = null;
    Rectangle r3 = new Rectangle(r);
    r1.perimetre();
    r2.perimetre();
    r3.perimetre();
    System.out.println("----------------");
    r1.aire();
    r2.aire();
    r3.aire();
    System.out.println("----------------");
    r1.toString();
    r2.toString();
    r3.toString();
    System.out.println("----------------");
    }
    }
    et merci.
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu vas avoir des problèmes en faisant ça :

      Rectangle r = null; 
      Rectangle r3 = new Rectangle(r);

      Dans ton constructeur tu ne pourras jamais faire null.largeur, et null.longueur !
      0