public class StudentTest {
public static void main(String[] args) {
//声明Student类型的数组
Student[] stus = new Student[5];
stus[0]=new Student();
stus[0].state=1;
System.out.println(stus[0].state);//1
System.out.println(stus[1]);//null;
System.out.println(stus[1].number);//异常
stus[1]=new Student();
System.out.println(stus[1].number);//0 }
}
class Student{
int number;//学号
int state;//年级
int score;//成绩
//显示学生信息的方法
public String info(){
return "学号:" + number + ",年级:" + state + ",成绩:" + score;
}
}
1
当执行Student[] stus = new Student[5]; 时,首先会在栈中分配变量stus(局部变量),new Student[5]会在堆中(数组是引用类型变量)创建大小为5的存储空间,数组具有初始默认值null,把创建好的数组首地址赋给stus变量进行存储。
2
当执行该语句后,在堆中创建一个Student类型大小的空间,并把首地址赋给了stus[0]
3
4下面是输出
System.out.println(stus[0].state);//1
System.out.println(stus[1]);//null;
System.out.println(stus[1].number);//异常(空)
当执行该语句后,在堆中创建一个Student类型大小的空间,并把首地址赋给了stus[1]
5
System.out.println(stus[1].number);//0
输出结果