0

我在使用以下代码时遇到问题。让我来看看代码正在做什么或打算做什么。该createZoo方法执行以下操作:

  1. Cage它创建一个对象数组
  2. 向该数组的每个索引添加一个由两个动物对象组成的配对对象
  3. newZoo.add(cage[i])- 这会将笼子对象传递给Zoo类中的 add 方法。它被添加到Zoo类中的列表中。

当我在Zoo类中访问此列表以检索笼对象时,就会出现问题。检索到的笼子对象是不正确的。cage[i]很抱歉这里含糊不清,但我认为问题出在上面的第 3 点,当我通过要添加到课堂上的List<Cage>笼子的论点时Zoo。我应该传递一个索引吗?

谢谢。

 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;

        }




    }
4

1 回答 1

0

将REFERENCE传递给 是完全Cage可以的,Zoo而且比将索引传递给cages[].

现在想一想,如果班级想要对对象Zoo做某事(据说打开所有笼子!),那么他们将如何访问仅使用. 您还将以某种方式授予对.CageCageindexcages[]Zoo

因此,如果您直接传递 的引用会更好Cage,因为无论如何操作笼子都需要对它的引用。

希望这是有道理的。

于 2012-12-01T09:09:06.507 回答