JAVA中关于对象数组的定义与使用
首先看下列代码
Student student[]=new Student [20];
//注意必须重新给数组中的每个对象分配内存空间
for(int i=0;i<20;i++)
student[i]=new Student();
for(int i=0;i<20;i++)
{
student[i].set_sname(i);
student[i].set_snumber(i);
student[i].set_chinesegrade();
student[i].set_mathgrade();
student[i].set_sciencegrade();
student[i].set_societygrade();
}
初次使用对象数组的时候,我觉得第一个Student student[]=new Student [20];已经为数组中的对象开辟了内存空间,所以就直接使用student[i].set_sname(i),这时候发现编译出错。
原来第一个Student student[]=new Student [20];虽然声明了对象数组,但是没有给数组中的每个对象都分配相应的内存空间,导致空指针错误。
只需要给数组中的每个对象分配相应的内存空间即可正确运行。
对象数组的初始化还有另外两种方法:
方法一:
Student student2[]={
new Student(),
new Student(),
};
方法二:
Student student2[]=new Student[]{
new Student(),
new Student(),
};