对象数组填充了所有相同的值

时间:2015-04-08 13:19:02

标签: java arrays object

我已经创建了一个名为BingoCard的类,我正在尝试用一个名为BingoGame的新类的构造函数中的BingoCard数据类型填充一组" BingoCard"

public BingoGame(int numberOfCards)
{

    bingoCardArray = new BingoCard[numberOfCards];
    BingoCard card = new BingoCard();
    for(int i=0;i<numberOfCards;i++)
    {
        card.fillCard();
        bingoCardArray[i] = card;
    }
//numbers that have been called 
    numbersCalled = new ArrayList<Integer>();

}

由于某种原因,它在数组的每个索引中填充具有相同BingoCard值的数组,该数组是在数组中输入的最后一个值。例如,它使用值为(A)的BingoCard填充索引0,并且在循环结束时使用值为(F)的BingoCard填充索引5,现在数组的所有索引都包含值(F)。任何想法为什么会这样? (card.fillCard()已经过测试和工作,即每次都会改变BingoCard的值)

1 个答案:

答案 0 :(得分:1)

您应该在循环中创建实例:

for(int i=0;i<numberOfCards;i++)
{
    BingoCard card = new BingoCard();
    card.fillCard();
    bingoCardArray[i] = card;
}

如果在循环之前只创建一个BingoCard实例,则数组中的所有位置都将包含相同的实例。