Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 参考问题_Java_Reference_Parameter Passing - Fatal编程技术网

Java 参考问题

Java 参考问题,java,reference,parameter-passing,Java,Reference,Parameter Passing,我有以下代码的问题。让我看看代码正在做什么或打算做什么。createZoo方法执行以下操作: 它创建一个Cage对象数组 向该数组的每个索引添加一个由两个动物对象组成的配对对象 newZoo.add(cage[i])-将cage对象传递给Zoo类中的add方法。它被添加到Zoo类的列表中 当我在Zoo类中访问此列表以检索框架对象时,问题就会出现。检索到的框架对象不正确。很抱歉这里的含糊不清,但我认为问题在于上面的第3点,当我将参数cage[I]传递到Zoo类的列表中时。我应该传递一个索引吗 谢谢

我有以下代码的问题。让我看看代码正在做什么或打算做什么。
createZoo
方法执行以下操作:

  • 它创建一个
    Cage
    对象数组
  • 向该数组的每个索引添加一个由两个动物对象组成的配对对象
  • newZoo.add(cage[i])
    -将cage对象传递给
    Zoo
    类中的add方法。它被添加到
    Zoo
    类的列表中
  • 当我在
    Zoo
    类中访问此列表以检索框架对象时,问题就会出现。检索到的框架对象不正确。很抱歉这里的含糊不清,但我认为问题在于上面的第3点,当我将参数
    cage[I]
    传递到
    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;
    
            }
    
    
    
    
        }
    
    类算法{
    专用整数计数器=15;
    私人动物园newZoo=新动物园();
    公众假期{
    Cage[]Cage=新Cage[计数器];
    //使用框架对象初始化框架数组
    初始化Gearray(笼子);
    while(计数器>0)//外部while循环
    
    对于(int i=0;i而言,将
    Cage
    引用传递到
    Zoo
    是完全正确的,并且比将索引传递到
    cages[]
    要好

    现在想一想,如果
    Zoo
    类想对
    Cage
    对象做些什么(假定打开所有Cage!),那么他们将如何仅使用
    索引访问
    Cage
    的对象。您还将以某种方式将整个
    Cage[]
    数组的访问权授予
    Zoo

    因此,如果直接传递
    Cage
    的引用会更好,至于如何操作Cage,您将需要引用它


    希望它有意义。

    什么是
    y=end of array
    ?这是您的实际代码吗?不只是循环中的伪代码我的主要问题是:如果我传递数组中某个索引引用的对象,如cage[I]对于将其添加到cage对象列表的方法,列表是否应该能够正确引用它?或者列表是否需要发送某种形式的索引才能正确引用它?添加
    cage[i]没有错
    到列表。这将传递对数组第i个元素的引用。您从不传递对象,而是始终传递引用。将
    cage[i]
    指定为参数将传递存储在
    cage
    数组第i个条目中的引用。程序员通常是“松散的”在他们描述事物的方式上,但是当你第一次学习时,学会准确地说话是很重要的。