【发布时间】:2012-11-30 23:18:38
【问题描述】:
以下代码有问题。让我来看看代码正在做什么或打算做什么。 createZoo 方法执行以下操作:
- 它创建了一个
Cage对象数组 - 向该数组的每个索引添加一个由两个动物对象组成的配对对象
-
newZoo.add(cage[i])- 这会将笼子对象传递给Zoo类中的 add 方法。它被添加到Zoo类的列表中。
当我在Zoo 类中访问此列表以检索笼子对象时,就会出现问题。检索到的笼子对象是不正确的。抱歉这里含糊不清,但我认为问题出在上面的第 3 点,当我将参数 cage[i] 添加到 Zoo 类中的 List<Cage> 笼子时。我应该传递一个索引吗?
谢谢。
class algo{
private int counter = 15;
private Zoo newZoo = new Zoo();
public void createZoo() {
Cage[] cage = new Cage[counter];
//initialize cage array with cage objects
initializeCageArray(cage);
while(counter>0) //outer while loop
for(int i =0; i<counter; i++)
{
for(int x = 0,y = end of array;x<somecounter; x++, y--)
{
Animal animala = Animal.get(x)
Animal animalb = Animal.get(y);
cage[i].add(new MatingPair(animala, animalb));
}
//adds cage object to list container in zoo class
//Am I passing the wrong thing here - maybe I need to pass an index?
newZoo.add(cage[i]);
--counter;
}
}
【问题讨论】:
-
什么是
y = end of array?这是您的实际代码吗? -
不只是循环中的伪代码
-
我的主要问题是:如果我将一个由数组中的某个索引引用的对象(如cage[i])传递给一个将其添加到cage对象列表的方法,该列表是否能够正确引用这个?还是需要向列表发送某种形式的索引才能正确引用它?
-
将
cage[i]添加到列表没有任何问题。这将传递对数组的 ith 元素的引用。 -
你永远不会传递对象——你总是传递引用。将
cage[i]指定为参数将传递存储在cage数组的第i 个条目中的引用。程序员在描述事物的方式上经常“松散”,但在你第一次学习时学会准确地说话很重要。
标签: java reference parameter-passing