我想多次制作相同的东西/物品,但是要用另一个名字制作。
像这样: 我想制作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循环或其他方法做到这一点?
由于
答案 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());
}