我在Java中有这个代码
for (int j = 0; j < 8; j++)
{
Boton[1][j].setIcon(PeonN);
Peon PeonNegro = new Peon('N');
Boton[6][j].setIcon(PeonB);
}
这是一个国际象棋,我希望每个新对象都有循环的数量独立使用它而不创建数组,有类似的东西
for (int j = 0; j < 8; j++)
{
Boton[1][j].setIcon(PeonN);
Peon PeonNegro+i = new Peon('N');
Boton[6][j].setIcon(PeonB);
}
所以我会有PeonNegro0,PeonNegro1等......
答案 0 :(得分:0)
这不是JAVA的工作方式。如果要拥有变量的顺序列表,则可以选择使用数组或Collection
个对象之一。无法动态命名变量。
此外,值得注意的是,由于您在for
循环内声明了该变量,因此该变量只有在循环的下一次迭代时才可访问。即使你无论如何都不能在循环之外使用变量,所以没有理由对它们进行编号。
答案 1 :(得分:0)
如果没有数组或Collection
,您将无法执行此操作。 (在Java中,使用动态变量名称将非常困难)。您必须在for循环之外声明类似数组或ArrayList
的内容,如下所示。
Peon[] peons = new Peon[8];
for (int j = 0; j < 8; j++)
{
Boton[1][j].setIcon(PeonN);
peons[j] = new Peon('N');
Boton[6][j].setIcon(PeonB);
}
// So we can access a single peon like this
Peon p3 = peons[3];
// Or iterate over all peons and get the cycle number like this
for (int cycle_num = 0; cycle_num < 8; cycle_num++) {
Peon peon = peons[cycle_num];
// Do something with peon and cycle_num here
}