日期:2014-05-20  浏览次数:20664 次

初学者关于数组的问题
看到论坛一个朋友回答的一个问题   他写了这些代码

public   class   Test   {
public   static   void   main(String   args[]){
Student[]   st   =   new   Student[10];
st[0]=   new   Student();     //问题在这里   为什么要实例化对象后才能赋值,上面声明的数组的句子不是已经实例化对象了么?
st[0].number   =   1;
System.out.println(st[0].number);
}
}
class   Student{
public   int   number=1;
public   int   age;
}

谢谢大家!

------解决方案--------------------
Student[] st = new Student[10];//是Student对像数组可以放10个Students对像
st[0]= new Student();

------解决方案--------------------
Student[] st = new Student[10];
给你举个例子吧,这里只是给你10个可装32斤油的油壶,但是还没有装油
下一步st[0]= new Student(); 这个就是装油的过程.

如果你只是Student[] st,这样就口头的跟你说,给你装32斤油的油壶,实际上一个油壶都没给,只是一句话,至于给多少,里面装不装油,那就是后面赋值时候给你了.
------解决方案--------------------
恩!都被说完了!我也没什么可说的了!
Student[] st = new Student[10];
这句只是定义了一个数组,并规定这个数组存储的内容的类型。但没具体定义里面的元素。
st[0]= new Student();
才是定义一个对象,并把引用赋值给st[0];