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