Java impression d'un tableau d'objets

Je sais qu'il y a beaucoup de pages à propos de cette question, mais je ne comprends pas dans mon cas.

J'ai besoin d'imprimer le tableau d'objets. Par exemple, j'ai un tableau d'objets qui détiennent des objets à partir de la "forme" de la classe. Dois-je appeler la méthode toString pour chaque objet du tableau, ou puis-je code de la méthode toString dans la liste d'objets à imprimer les variables d'instance? Si oui, comment dois-je faire?

public class Shape{
    private String shapeName;
    private int numSides;

    public String toString(){
        return shapeName + " has " + numSides + " sides.";
    }
}

public class ObjectList{
    private Object[] list = new Object[10];
    private int numElement = 0;

    public void add(Object next){
        list[numElement] = next;
    }

    public String toString(){
        //prints out the array of objects 

        //do I call the toString() method from the object?

        //or do I print the instance variables? What am I printing?

        //I'm guessing I do a for loop here
    }
}

public class Driver{
    public static void main(String[] args){
        ObjectList list = new ObjectList();
        Shape square = new Shape("square", 4);
        Shape hex = new Shape("hexagon", 6);
        list.add(square);
        list.toString();  //prints out array of objects
}

Je vise pour imprimer cette:

square has 4 sides
hexagon has 6 sides
Si le tableau ne contient que Shapes, pourquoi ne pas faire un Shape[] plutôt que Object[]? Aussi votre add méthode doit augmenter la valeur de numElement.
Ah oui j'ai oublié d'ajouter le numElement++, mais je voulais le rendre dynamique pour tous les objets, et pas seulement de la Forme[] classe.

OriginalL'auteur Denise Moran | 2015-04-15