probleme tableau

probleme tableau - Java - Programmation

Marsh Posté le 14-08-2004 à 16:49:54    


VOila les erreurs que j'obtient :
 
tableau.java:84: Method estCarre(Rectangle[]) not found in class Test.
       estCarre(tabRect);
               ^
tableau.java:87: Method superieur(Rectangle[], int) not found in class Test.
       superieur(tabRect, 18);
                ^
2 errors
 
 
Pourquoi il cherche la fonction dans Test ?  
 
 
 
Voila le code :  
 

Code :
  1. class Rectangle
  2. {
  3. private int longueur;
  4. private int largeur ;
  5. public Rectangle(int longueur, int largeur)
  6. {
  7.             this.longueur = longueur;
  8.  this.largeur = largeur;
  9. }
  10. public int perimetre()
  11.         {
  12.  return 2 * (longueur + largeur);
  13. }
  14. public void afficher ()
  15.         {
  16.          System.out.println( "<longueur = "+longueur+", largeur = "+largeur);         
  17.                 System.out.println("<perimetre = "+perimetre() + ">" );
  18.         }
  19.         public void estCarre(Rectangle[] tabRect)
  20.         {
  21.              System.out.println("Les carrees\n" );
  22.              for(int i = 0;i < tabRect.length; i++)
  23.              if(tabRect[i].getLongueur() == tabRect[i].getLargeur())
  24.                  tabRect[i].afficher();
  25.         }
  26.         public void superieur(Rectangle[] tabRect, int nombre)
  27.         {
  28.              System.out.println("Rectangle dont le périmètre est supérieur à " + nombre);
  29.              for(int i = 0;i < tabRect.length; i++)
  30.                 if(tabRect[i].perimetre() > nombre)
  31.                     tabRect[i].afficher();
  32.         }
  33. public int getLongueur()
  34.         {
  35.  return longueur;
  36. }
  37.         public int getLargeur() 
  38.         {
  39.                return largeur;
  40.         }
  41. }
  42. class Test
  43. {
  44.    public static void main (String[] args)
  45.    {
  46.        Rectangle[] tabRect = new Rectangle[5];
  47.        /* creation des objets */
  48.        for(int i = 0; i < tabRect.length; i++)
  49.           tabRect[i] = new Rectangle(i+1, 10-(2*i));
  50.    
  51.        /* affichage */
  52.        for(int i = 0;i < tabRect.length; i++)
  53.           tabRect[i].afficher();
  54.        /* affiche rectangle qui sont carré */   
  55.        estCarre(tabRect);
  56.        /* affiche rectangle dont périmètre > 18 */
  57.        superieur(tabRect, 18);
  58.    }
  59. }


 
 
Merci.

Reply

Marsh Posté le 14-08-2004 à 16:49:54   

Reply

Marsh Posté le 14-08-2004 à 17:31:59    

Si tu veux appeller une méthode sur un objet, tu dois mettre le nom de la méthode après l'objet -> tabRect.estCarre();
 
Sinon il la cherchera dans la classe courante.
 
Si tu veux laisser les méthodes là, fais Rectangle.estCarre(...


Message édité par WhatDe le 14-08-2004 à 17:34:17
Reply

Marsh Posté le 14-08-2004 à 18:00:40    

WhatDe a écrit :


Si tu veux laisser les méthodes là, fais Rectangle.estCarre(...


sans oublier de rendre la méthode estCarre  static ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed