Problème tableau Java

Résolu
Ouss91 Messages postés 41 Statut Membre -  
Ouss91 Messages postés 41 Statut Membre -
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. Utilisateur anonyme
     
    T'as résolu ton problème?

    Tant mieux
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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.
      0
      1. Utilisateur anonyme > KX Messages postés 19031 Statut Modérateur
         
        Bonjour

        J’attendais un retour de sa part avant de l’évoquer
        0
  2. Ouss91 Messages postés 41 Statut Membre
     
    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 !
    0