【发布时间】:2015-04-08 13:19:01
【问题描述】:
我创建了一个名为 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 的值)
【问题讨论】:
-
您将每个设置为同一张卡。您需要为每个条目创建一个新卡片。
-
card.fillCard() 会改变卡片的价值吗?创建一张新卡确实可以解决问题,但我不明白为什么
-
因为您要更改卡的值,单数。
-
啊我明白了,谢谢你的解释。