有幾點(diǎn)不是很理解 希望有大佬解惑
1.為什么要初始化屬性students?屬性不是應(yīng)該賦值嗎??this.students=new?ArrayList<String,Student>();?有什么用??為什么這么用??是什么意思 2.public?Map<String,Student>students;??聲明屬性我懂?為什么用Map類型??不是說Map是接口嗎??不應(yīng)該是int?char?string??這種類型嗎 3.Student?st=students.get(ID);???為什么屬性.get()??可以調(diào)用get方法??不應(yīng)該是對象名.get?或者類名.get嗎 不知道我是不是知識(shí)點(diǎn)沒記住?但我好像沒忘記什么啊??但就是想不通
2018-09-02
this
.students=
new
?ArrayList<String,Student>();這一步就是為屬性賦值的操作,因?yàn)閙ap是一個(gè)類,它聲明的是一個(gè)對象的引用,這一步:
new
?ArrayList
就是將一個(gè)對象實(shí)例化,然后將對象的地址賦值給students這個(gè)對象的引用上的。然后我們通常把這一步操作叫做利用構(gòu)造器為屬性初始化map聲明的是對象的引用,并不是用map去實(shí)例化一個(gè)對象,我們知道多態(tài)是可以利用父類來聲明對象的引用從而指向子類實(shí)例化的對象的,這里就是通過接口聲明了一個(gè)map對象的引用,然后用它指向一個(gè)實(shí)現(xiàn)了map對象的子類的對象
雖然這里的students是一個(gè)屬性,但是他是一個(gè)保存著對象地址的屬性,所以用它:students。get()方法實(shí)際上是用它所指向的那個(gè)對象進(jìn)行g(shù)et()方法。
以上就是我的理解,可能有些說的不夠透徹。不過如果有問題或者有更好的理解可以及時(shí)回復(fù),大家共同進(jìn)步。
2018-08-31
因?yàn)镸ap是接口,所以不能實(shí)例化 ,只能實(shí)例化HashMap;
因?yàn)閟tudents的類型是Map,Map里面 有g(shù)et方法,所以可以students.get();
個(gè)人觀點(diǎn)。。
2018-08-24
Map的映射,key-value,==>String-Student