Problème tableau Java

Résolu/Fermé
Ouss91 Messages postés 35 Date d'inscription dimanche 24 janvier 2021 Statut Membre Dernière intervention 20 juillet 2021 - Modifié le 25 janv. 2021 à 22:09
Ouss91 Messages postés 35 Date d'inscription dimanche 24 janvier 2021 Statut Membre Dernière intervention 20 juillet 2021 - 26 janv. 2021 à 18:07
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 :/
A voir également:

3 réponses

Utilisateur anonyme
25 janv. 2021 à 22:16
Bonsoir

Pour qu’on puisse t’aider au mieux, rendre le code lisible sur le site serait une excellente idée.
Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite tu pourras éditer ton message pendant encore 50 minutes environ
0
Utilisateur anonyme
25 janv. 2021 à 23:34
T'as résolu ton problème?

Tant mieux
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
26 janv. 2021 à 08:29
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
Utilisateur anonyme > KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
26 janv. 2021 à 14:29
Bonjour

J’attendais un retour de sa part avant de l’évoquer
0
Ouss91 Messages postés 35 Date d'inscription dimanche 24 janvier 2021 Statut Membre Dernière intervention 20 juillet 2021
26 janv. 2021 à 18:07
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