我已经创建了一个名为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的值)
答案 0 :(得分:1)
您应该在循环中创建实例:
for(int i=0;i<numberOfCards;i++)
{
BingoCard card = new BingoCard();
card.fillCard();
bingoCardArray[i] = card;
}
如果在循环之前只创建一个BingoCard
实例,则数组中的所有位置都将包含相同的实例。