一、
1、1无参构造方法:
public Subject() {
}
//引用数据类型(数组、类、接口)需要创建对象赋值后才能使用;当为null时,调用方法时会报空指针异常(NullPointerException)
1、2有参构造方法:(注意这里的myStudents在构造方法中并没有被初始化)
public Subject(String subjectName, String subjectID, int subjecctLife,Student[] myStudents,int stuNum ) {
this.setSubjectName(subjectName);
this.setSubjectID(subjectID);
this.setSubjectLife(subjecctLife);
this.setMyStudents(myStudents);
this.setStuNum(stuNum);
}
2、myStudents数组属性的setter和getter方法
3、
二、这里之sub1在调用方法add()时,其实sub1中的myStudents数组是没有初始化的,但是在add方法中有i < this.getMyStudents().length;则在调用getMyStudents()时,通过getMyStudents()方法进行了初始化;
三、总结
之所在getMyStudents()方法中根据其是否为空而判断是否初始化,而不是在定义属性myStudents时就初始化,是为了实现在用到的时候再开空间(当规模比较大,业务逻辑比较复杂的情况下,使用这种,效率会更高);