将循环编号添加到对象的名称

时间:2013-04-18 01:22:06

标签: java arrays object cycle

我在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等......

2 个答案:

答案 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

}