亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于案例中的一些疑問(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類中為什么要創建一個空的構造器呢?可以去掉嗎?

public?Course(String?id,?String?name)?{

this.id?=?id?;

this.name?=?name;

}

public?Course()?{????//空的構造體????

}

?

ListTest類中的構造方器的意思和作用是什么,沒太看明白!

public?ListTest()?{

this.coursesToSelect?=?new?ArrayList();

}


正在回答

3 回答

1、((Course)?coursesToSelect.get(4)).id,再加一對括號。

2、Course的子類要調用這個空的構造體,沒有子類的話可以不用。(看編程習慣,一般都是要有的)。

3、在構造器里寫的東西,都是會在創建這個類的對象的時候執行的,這里的意思是,在創建這個ListTest類時,new一個新的List給當前類的List。

新手,如果有什么錯誤的請指正,共同學習。

0 回復 有任何疑惑可以回復我~
#1

天涯蝶舞 提問者

1、請問為什么有子類時,父類就必須要有一個無參構造方法呢?是起什么作用的呢?2、ListTest類中已經通過coursesToSelect.add和.addAll對新增對象進行添加,為什么在構造方法中還要創建一個new ArrayList()給coursesToSelect集合呢?ArrayList()與List有什么區別?this.coursesToSelect = new ArrayList();這句具體實現了什么呢?coursesToSelect獲取到了什么呢?沒太明白?這一句能去掉嗎?請詳解,非常感激!
2015-12-28 回復 有任何疑惑可以回復我~
#2

_泥人_ 回復 天涯蝶舞 提問者

1、當你創建一個類的對象時,首先會調用這個類構造方法。構造又分為有參構造和無參構造,當你沒有自己定義帶有參數的構造時,系統會自動為該類創建一個(看不見的)無參構造以供我們在創建對象時用。而子類的構造函數(有參和無參)會自動執行(自動為子類的構造方法添加一個我們看不見的super()方法,我們也可以自己加上去效果一樣,但必須是在子類構造方法的第一行加上;)父類的構造方法,默認會執行父類的無參構造(因為super(),調用的就是父類的無參構造,也可以自己定義來調用父類的有參構造super(name);),那你父類沒有這個無參構造,在創建子類的時候編譯器就會報錯,提示。
2015-12-29 回復 有任何疑惑可以回復我~
#3

_泥人_ 回復 天涯蝶舞 提問者

2、coursesToSelect本來是ListTest類中的一個屬性,什么時候給他實例化的呢?就是什么時候讓他變成了一個ArraysList集合了呢?對!你猜的沒錯,自動執行了他的無參構造,實例化了coursesToSelect,讓他便成了一個集合。關于List和ArraysList我研究的也不是很深,List是一個接口,所以他不能直接被new,ArraysList是List接口一個重要的實現類。
2015-12-29 回復 有任何疑惑可以回復我~

List是一個接口,接口中的方法都是抽象方法,是沒有方法體的。必須借助ArraysList來實例化。

0 回復 有任何疑惑可以回復我~

空的構造器可以省去不寫,在沒有自己定義構造器的時候,虛擬機會自動加上它。但是一個好的編程習慣就是自己把它寫出來,因為繼承它的子類的構造方法會去調用父類空參的構造器,如果我們在父類中定義了帶參數的構造器,那么在編譯子類的時候就有可能出錯。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409775    人
  • 解答問題       4546    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

關于案例中的一些疑問(3個)!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號