關(guān)于案例中的一些疑問(3個)!
Course?temp5?=?(Course)?coursesToSelect.get(2);
Course?temp6?=?(Course)?coursesToSelect.get(3);
System.out.println("添加了兩門課程:"?+?temp5.id?+?":"?+?
temp5.name?+?";"?+?temp6.id?+?":"?+?temp6.name);
為什么不能直接寫成(Course)?coursesToSelect.get(4).id和(Course)?coursesToSelect.get(4).name直接獲取id和name呢?會提示id和nameid?cannot?be?resolved?or?is?not?a?field?
?
另外Course類中為什么要創(chuàng)建一個空的構(gòu)造器呢?可以去掉嗎?
public?Course(String?id,?String?name)?{
this.id?=?id?;
this.name?=?name;
}
public?Course()?{????//空的構(gòu)造體????
}
?
ListTest類中的構(gòu)造方器的意思和作用是什么,沒太看明白!
public?ListTest()?{
this.coursesToSelect?=?new?ArrayList();
}
2015-12-27
1、((Course)?coursesToSelect.get(4)).id,再加一對括號。
2、Course的子類要調(diào)用這個空的構(gòu)造體,沒有子類的話可以不用。(看編程習(xí)慣,一般都是要有的)。
3、在構(gòu)造器里寫的東西,都是會在創(chuàng)建這個類的對象的時候執(zhí)行的,這里的意思是,在創(chuàng)建這個ListTest類時,new一個新的List給當(dāng)前類的List。
新手,如果有什么錯誤的請指正,共同學(xué)習(xí)。
2016-09-30
List是一個接口,接口中的方法都是抽象方法,是沒有方法體的。必須借助ArraysList來實(shí)例化。
2015-12-27
空的構(gòu)造器可以省去不寫,在沒有自己定義構(gòu)造器的時候,虛擬機(jī)會自動加上它。但是一個好的編程習(xí)慣就是自己把它寫出來,因?yàn)槔^承它的子類的構(gòu)造方法會去調(diào)用父類空參的構(gòu)造器,如果我們在父類中定義了帶參數(shù)的構(gòu)造器,那么在編譯子類的時候就有可能出錯。