2016-04-27 8 views
-1

Ich möchte das gleiche Ding/Objekt mehrmals machen, aber al mit einem anderen Namen.Machen Sie die gleiche Sache mehrmals, aber mit einem anderen Namen

So: I 6 Polygonen machen will, aber jeder von ihnen mit einem anderen Namen:

Polygon p1 = new Polygon(); 
    Polygon p2 = new Polygon(); 
    Polygon p3 = new Polygon(); 
    Polygon p4 = new Polygon(); 
    Polygon p5 = new Polygon(); 
    Polygon p6 = new Polygon(); 

Gibt es eine Möglichkeit, dies sonst für Schleife oder etwas mit einem zu tun?

Dank

+3

Ein Array würde sehr viel Sinn, hier in Ordnung sein. – rajah9

+0

Ja, aber das löst das Problem nicht. Was, wenn ich 100 Polygone machen möchte? – Aleandro

+5

@Aleandro: Dann erstellen Sie ein Array der Größe 100 und füllen es in einer Schleife. Es löst wirklich das Problem, wie du es beschrieben hast ... –

Antwort

3

Sie können nicht dynamisch Variablennamen in Java erstellen. Sie müssen im Quellcode zum Zeitpunkt der Kompilierung verfügbar sein, wie andere gesagt haben, ist die übliche Art und Weise dies in Java zu tun ist, einen Array oder eine Liste zu erstellen. zum Beispiel:.

List<Polygon> polygons = new ArrayList<>(); 
for (int ctr = 0; ctr < 100; ctr++) { 
    polygons.add(new Polygon()); 
} 

Sie verweisen auf das Objekt nicht durch eine Name, aber durch seine Index.

Polygon poly = polygons.get(22); 

Eine andere Möglichkeit, darüber nachzudenken. Was wäre, wenn Sie 100 individuelle Variablennamen für Ihre Objekte hätten? Was wäre, wenn Sie einen Prozess auf all Ihren Polygonen ausführen möchten? Wollen Sie ..

doSomething(p1); 
doSomething(p2); 
// ... lots more lines like this... 
doSomething(p99); 

oder einfach:

for (Polygon poly : polygons) { 
    doSomething(poly); 
} 
+0

Oke, Danke! – Aleandro

0

Bitte nehmen Sie sich einen Blick auf die Dokumentation auf Arrays. Im Beispielcode würden Sie den Namen anArray in myPolygons ändern. Und Sie müssten die int in eine Polygon ändern. Aber die Idee ist dieselbe. Sie würden p6 referenzieren, indem Sie ihn myPolygons[6] aufrufen. (Oder vielleicht myPolygons[5], weil Java Null-Offset, was bedeutet, dass die erste in Ihrem Array myPolygons[0] sein würde. Und ja, eine for Schleife würde auch helfen.

0

So etwas sollte

List<Polygon> polygonObjects = new ArrayList<Polygon>(); 

    for(int i = 0; i < 6; i++){ 
     polygonObjects.add(new Polygon()); 
    } 
Verwandte Themen