關於java的對象數組

以前做程序基本沒有用過對象數組,今做一個小程序時用到了,但運行時卻出現一些問題, 經過一翻分析和多次調試後,終於找到了原因!!!

  我在是做GUI程序時用到的對象數組,下面是我程序中的一部份;

       我在類中定義一個JButton的數組
        JButton [ ] b=new JButton[9];
  但按下面方式給按鈕上添加內容時編譯沒什麼問題,但在運行時卻總是出錯,
       比如 for(int i=0;i<=9;i++)        
                     { Integer a=new Integer(i);
                       b[i].setText(a.toString());    //設置按鈕上顯示的文字
                   }
         後來通過錯誤提示,和多次調式終於分析出問題的原因,應該是b的對象數組應該在內存中沒有被創建,

       後來把程序改成下面這樣,就沒問題了
                   for(int i=0;i<=9;i++)        
                     { b[i]=new JButton();
                       Integer a=new Integer(i);
                       b[i].setText(a.toString());      
                   }  

      原因是在定義對象數組時,並沒有在內存中給對象數組分配空間,而是在定義後,還要給數組中每個元素在創建一次對象,就行了,
  比如定義一個類 Aa,再定義它的對象數組
         Aa [ ] a=new Aa[3];
          a[0]=new Aa();
         a[1]=new Aa();
          a[2]=new Aa();

最後的結論就是:Aa [ ] a=new Aa[3]只創建了數組對象本身,而沒有創建其中那些元素,其中的每個元素還得再創建Aa對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章