Frage von RowdyN, 56

In Java mit for-Schleife mehrere Objekte erstellen?

Hallo Leute,

wie in der Frage angedeutet möchte ich in Java mehrere Objekte alleine erstellen lasse. Mein Code sieht so aus, aber dann haben die Objekte keine Name. Was kann ich tun?

public static void main(String[]args)
{
    Square[] objekte = new Square[10];        

    {
        for(int i = 1;1<10;i++)
        {
            objekte[i] = new Square();
        }
    }
}
Antwort
von TUrabbIT, 42

Du kannst die Objekte in der Liste einfach über den Index adressieren. Also objekte[i].Methode(Parameter)

Antwort
von Omnivore08, 56

Ja wozu brauchst du denn die Namen? Das ist doch der Sinn dahinter. Jetzt adressierst du mit dem Index des Feldes.

Kommentar von RowdyN ,

okay... und was muss ich jetzt machen, wenn ich 10 Squares erstellen möchte und dann 2 davon mit einer Methode z.B. sichtbar machen möchte auf einer canvas?

Kommentar von Omnivore08 ,

Na dann adressierst du DIE zwei, bei denen du das machen willst. Du weißt ja auch in welcher Reihenfolge du sie hinzugefügt hast

Kommentar von RowdyN ,

Und wie adressiere ich, DIE zwei??

Wenn ich das weiß, wäre das Problem doch gelöst, oder?

Kommentar von Omnivore08 ,

na objekte[4] und objekte[7]....oder welche auch immer du gerade ansprechen willst.

Ich verstehe noch immer nicht ganz dein Problem, tschuldigung

Kommentar von RowdyN ,

und dann kann ich z.B. schreiben objekte[4].changeColor("yellow");

Kommentar von Omnivore08 ,

zum Bleistift, ja

Kommentar von RowdyN ,

okay danke

Kommentar von PerfectMuffin ,

Merke, dass [0] das ERSTE Objekt ist.

Kommentar von TUrabbIT ,

Ja

Antwort
von GustavAT, 24

Dein Code wird leider nicht funktionieren sondern eine IndexOutOfBoundsException werfen, da du das Array mit den Indizes von 1-10 und nicht von 0-9 anprichts.

Ein Name ist irrelevant, du sprichts ein beliebiges Element deines Arrays einfach mit dem Index innerhalb der [] an z.B.

Square elem = objekte[index];
elem.methode();

oder gleich

objekte[index].methode();

Keine passende Antwort gefunden?

Fragen Sie die Community