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

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

有幾點不是很理解 希望有大佬解惑

1.為什么要初始化屬性students?屬性不是應該賦值嗎??this.students=new?ArrayList<String,Student>();?有什么用??為什么這么用??是什么意思

2.public?Map<String,Student>students;??聲明屬性我懂?為什么用Map類型??不是說Map是接口嗎??不應該是int?char?string??這種類型嗎

3.Student?st=students.get(ID);???為什么屬性.get()??可以調用get方法??不應該是對象名.get?或者類名.get嗎

不知道我是不是知識點沒記住?但我好像沒忘記什么啊??但就是想不通

正在回答

3 回答

  1. this.students=new?ArrayList<String,Student>();這一步就是為屬性賦值的操作,因為map是一個類,它聲明的是一個對象的引用,這一步:new?ArrayList就是將一個對象實例化,然后將對象的地址賦值給students這個對象的引用上的。然后我們通常把這一步操作叫做利用構造器為屬性初始化

  2. map聲明的是對象的引用,并不是用map去實例化一個對象,我們知道多態是可以利用父類來聲明對象的引用從而指向子類實例化的對象的,這里就是通過接口聲明了一個map對象的引用,然后用它指向一個實現了map對象的子類的對象

  3. 雖然這里的students是一個屬性,但是他是一個保存著對象地址的屬性,所以用它:students。get()方法實際上是用它所指向的那個對象進行get()方法。

  4. 以上就是我的理解,可能有些說的不夠透徹。不過如果有問題或者有更好的理解可以及時回復,大家共同進步。

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

因為Map是接口,所以不能實例化 ,只能實例化HashMap;

因為students的類型是Map,Map里面 有get方法,所以可以students.get();

個人觀點。。

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

Map的映射,key-value,==>String-Student

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

認真的小萌新 提問者

這個泛型我懂 只是為什么要用Map來定義屬性 不應該使用類 來定義嗎
2018-08-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有幾點不是很理解 希望有大佬解惑

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

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

幫助反饋 APP下載

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

公眾號

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