多次做同样的事情,但用另一个名字

时间:2016-04-27 20:47:43

标签: java polygon

我想多次制作相同的东西/物品,但是要用另一个名字制作。

像这样: 我想制作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();

有没有办法用for循环或其他方法做到这一点?

由于

3 个答案:

答案 0 :(得分:3)

您无法在Java中动态创建变量名称。它们需要在编译时在源代码中可用。正如其他人所说,在Java中执行此操作的常用方法是创建数组或列表。例如:

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

您不是通过名称引用对象,而是通过 index 引用该对象。

Polygon poly = polygons.get(22);

另一种思考方式。如果您的对象有100个单独的变量名称,该怎么办?那么如果你想在你的所有多边形上运行一些过程怎么办呢。你想要..

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

或简单地说:

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

答案 1 :(得分:0)

请查看Arrays上的文档。

在示例代码中,您可以将名称anArray更改为myPolygons。您需要将int更改为Polygon。但这个想法是一样的。您可以通过调用myPolygons[6]来引用p6。 (或者可能是myPolygons[5],因为Java是零偏移的,这意味着数组中的第一个将是myPolygons[0]。是的,for循环也会有帮助。

答案 2 :(得分:0)

这样的事情应该没问题

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

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