Problème tableau Java

Résolu
Bonjour,

J'essaie de faire fonctionner un programme qui ajoute des éléments dans un tableau... Or lorsque je veux afficher la taille du tableau, ca m'affiche 0. Voyez plutôt mon code :

public class Terrain extends Forme {

//Déclaration de la variable i
static int i;
static Forme[] batiments = new Forme[i];

public static void main(String argums[])

{

//Instanciation des classe Rectangle, Triangle, Cercle et du tableau batiments
Rectangle r = new Rectangle(3,3);
Triangle t = new Triangle(2,2);
Cercle c = new Cercle(2);
batiments[0] = r;
batiments[1] = t;
batiments[2] = c;
}

//Définition de la méthode ajouterForme() qui ajoute une nouvelle forme
//public boolean ajouterForme(){
//for ( int i=0 ; i < batiments.length ; i++){
// batiments[i]=new Forme();
// }
//}

//Définition de la méthode calculerSurfaceTotale() qui calcule la surface totale occupée
public double calculerSurfaceTotale()
{
double surfaceTotale=0;
for ( int i=0 ; i < batiments.length ; i++){
surfaceTotale=surfaceTotale+batiments[i].calculerSurface();
}
return surfaceTotale;
}

//Définition de la méthode calculerSurfaceTotale() qui affiche la surface totale occupée
public void afficherSurfaceTotale()
{System.out.println("La surface totale est de "+batiments.length);}

}

Remarque : je début en Java

Help please :/

3 réponses

  1. T'as résolu ton problème?

    Tant mieux
    1. Modérateur
      Bonjour,

      Pour ceux que ça intéresse, le problème est là :
      static int i;
      static Forme[] batiments = new Forme[i];

      i
      n'étant pas initialisé il vaut 0 par défaut. La construction du tableau se faisant avec une taille de
      i
      (donc 0), ça donne un tableau vide.
    2. @KXBonjour

      J’attendais un retour de sa part avant de l’évoquer
  2. Bonsoir,

    J'ai résolu le problème.

    Voici les codes :

    Terrain.java :

    public class Terrain extends Forme {

    private static Forme[] batiments;

    public Terrain(Forme...bat)
    {batiments=bat;}

    public static void main(String argums[])

    {

    //Instanciation des classe Rectangle, Triangle, Cercle et du tableau batiments
    Rectangle r = new Rectangle(3,3);
    Triangle t = new Triangle(2,2);
    Cercle c = new Cercle(2);
    batiments[0] = r;
    batiments[1] = t;
    batiments[2] = c;
    }

    //Définition de la méthode ajouterForme() qui ajoute une nouvelle forme
    //public boolean ajouterForme(){
    //for ( int i=0 ; i < batiments.length ; i++){
    // batiments[i]=new Forme();
    // }
    //}

    //Définition de la méthode calculerSurfaceTotale() qui calcule la surface totale occupée
    public double calculerSurfaceTotale()
    {
    double surfaceTotale=0;
    for ( int i=0 ; i < batiments.length ; i++){
    surfaceTotale=surfaceTotale+batiments[i].calculerSurface();
    }
    return surfaceTotale;
    }

    //Définition de la méthode calculerSurfaceTotale() qui affiche la surface totale occupée
    public void afficherSurfaceTotale()
    {System.out.println("La surface totale est de "+calculerSurfaceTotale());}

    }

    TestAppliSurface.java :

    public class TestAppliSurface {

    public static void main(String[] args) {
    Rectangle r=new Rectangle(4,4);
    Triangle t=new Triangle(2,2);
    Cercle c =new Cercle(2);
    Terrain te=new Terrain(new Rectangle(4,4), new Triangle(2,2), new Cercle(2));
    System.out.println("La longueur du rectangle est de "+r.getLongueur()+" et la largeur est de "+r.getLargeur());
    System.out.println("La surface du rectangle est de "+r.calculerSurface());
    System.out.println("La hauteur du triangle est de "+t.getHauteur()+" et la base est de "+t.getBase());
    System.out.println("La surface du triangle est de "+t.calculerSurface());
    System.out.println("Le rayon du cercle est de "+c.getRayon());
    System.out.println("La surface du cercle est de "+c.calculerSurface());
    te.afficherSurfaceTotale();
    }

    }

    Merci à tous pour votre aide !