一、
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時就初始化,是為了實現在用到的時候再開空間(當規模比較大,業務邏輯比較復雜的情況下,使用這種,效率會更高);