2016-04-27 3 views
-1

Я хочу сделать одно и то же/объект несколько раз, но с другим именем.Сделайте то же самое несколько раз, но с другим именем

Как это: Я хочу сделать 6 многоугольников, но каждый из них с другим именем:

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

Есть ли способ сделать это с цикл или что-то еще?

Благодаря

+3

массив будет сделать много смысла, здесь. – rajah9

+0

Да, но это не решает проблему. Что делать, если я хочу сделать 100 полигонов? – Aleandro

+5

@Aleandro: Затем вы создаете массив размером 100 и заполняете его в цикле. Это действительно * * решает проблему, как вы описали ее ... –

ответ

3

Вы не можете динамически создавать имена переменных в Java. Они должны быть доступны в исходном коде во время компиляции, как уже говорили другие, обычный способ сделать это в Java, чтобы создать массив или список, например:..

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

Вы ссылки на объект не но по его индекс.

Polygon poly = polygons.get(22); 

Другой способ подумать об этом. Что делать, если у вас было 100 имен переменных для ваших объектов. Тогда что, если вы хотите запустить какой-то процесс на всех ваших полигонах. Вы хотите ..

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

или просто:

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

Оке, спасибо! – Aleandro

0

Пожалуйста, обратите внимание на документацию по Arrays.

В примере кода вы должны изменить имя anArray на myPolygons. И вам нужно будет изменить int на Polygon. Но идея такая же. Вы ссылаетесь на p6, называя его myPolygons[6]. (Или, может быть myPolygons[5], потому что Java является нулевым смещением, а это означает, что первый один в вашем массиве будет myPolygons[0]. И да, for петли также помогут.

0

Что-то, как это должно быть в порядке

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

    for(int i = 0; i < 6; i++){ 
     polygonObjects.add(new Polygon()); 
    } 
Смежные вопросы