一、
1、1無參構(gòu)造方法:
public Subject() {
}
//引用數(shù)據(jù)類型(數(shù)組旬陡、類映胁、接口)需要?jiǎng)?chuàng)建對(duì)象賦值后才能使用;當(dāng)為null時(shí)说墨,調(diào)用方法時(shí)會(huì)報(bào)空指針異常(NullPointerException)
1、2有參構(gòu)造方法:(注意這里的myStudents在構(gòu)造方法中并沒有被初始化)
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數(shù)組屬性的setter和getter方法
3巍实、
二、這里之sub1在調(diào)用方法add()時(shí)哩牍,其實(shí)sub1中的myStudents數(shù)組是沒有初始化的棚潦,但是在add方法中有i < this.getMyStudents().length;則在調(diào)用getMyStudents()時(shí)膝昆,通過getMyStudents()方法進(jìn)行了初始化丸边;
三、總結(jié)
之所在getMyStudents()方法中根據(jù)其是否為空而判斷是否初始化荚孵,而不是在定義屬性myStudents時(shí)就初始化妹窖,是為了實(shí)現(xiàn)在用到的時(shí)候再開空間(當(dāng)規(guī)模比較大,業(yè)務(wù)邏輯比較復(fù)雜的情況下收叶,使用這種骄呼,效率會(huì)更高);