2012-11-30 102 views
0

我遇到以下代碼有問題。讓我看看代碼正在做什麼或意在做什麼。該createZoo方法執行以下操作:引用問題

  1. 它創建Cage對象
  2. 的陣列向該陣列加入的配合一對對象,該對象包括兩個動物對象
  3. newZoo.add(cage[i])中的每個索引 - 這通過籠反對Zoo類中的add方法。它被添加到Zoo類的列表中。

當我在Zoo類中訪問此列表來檢索籠子對象時,問題就出現了。檢索到的籠子對象是不正確的。對不起,這裏的模糊性,但我認爲問題的關鍵在於3點,當我傳遞參數cage[i]添加到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; 

     } 




    } 
+0

什麼是'y =數組末尾'?這是你的實際代碼嗎?在循環 –

+0

否只是僞碼是這樣的:如果我在陣列通過由一些索引引用的對象,如籠[I]到,增加了這對保持架的對象的列表的方法,應該列表能夠正確引用這個?或者該列表是否需要發送某種形式的索引才能正確引用它? –

+0

我的主要問題 –

回答

0

這是完全沒有問題的,以Cage通過參照Zoo和它比索引傳遞到cages[]更好。

現在想想,如果Zoo類想要做的Cage對象(所謂開放所有的籠子!)的東西,那麼他們會怎麼訪問Cage對象只使用index。您將以某種方式將cages[]的整個數組訪問到Zoo

所以它的,如果你直接傳遞的Cage參考,爲操縱籠子,無論如何,你將需要參考它好得多。

希望它是有道理的。