這里面的courses是作為一個(gè)屬性值還是做一個(gè)對(duì)象名還是什么
package?com.imooc.collection;import?java.util.ArrayList;import?java.util.List;//帶有泛型的course,list屬性public?class?TestGeneric?{????????public?List<Course>?courses;//泛型的寫法public?List<屬性>屬性值?????????public?TestGeneric()?{//構(gòu)造器沒有類名class,沒有返回值類型??????this.courses=new?ArrayList<Course>();//直指當(dāng)前的屬性值=新的?數(shù)組列表<屬性>();????????????}????//測(cè)試添加,這是一個(gè)方法,所以需要一個(gè)返回值????public?void?Testadd()?{????????????????//ts1只是用來保存后面值("1",?"大學(xué)語(yǔ)文")的保存對(duì)象,主對(duì)象是寫在構(gòu)造器當(dāng)中的this.后面的,主對(duì)象來操作比如增加(保存的對(duì)象名)刪除(保存的對(duì)象名)等,????????Course?ts1?=?new?Course("1",?"大學(xué)語(yǔ)文");????????courses.add(ts1);????????//泛型集合中不能add添加一些其他類型的內(nèi)容,否則會(huì)報(bào)錯(cuò)???????//?courses.add("能否添加一些奇怪的東西呢");,????????Course?ts2?=new?Course("2",?"java基礎(chǔ)");????????courses.add(ts2);????????????}????//測(cè)試循環(huán)遍歷????public?void?testForEach()?{????????for?(Course?ts2:courses)?{//泛型可以少些一步類型轉(zhuǎn)換???????????System.out.println(ts2.ID+ts2.Name);?????????}????}????public?static?void?main(String[]?args)?{????????TestGeneric?TG?=new?TestGeneric();????????TG.Testadd();????????TG.testForEach();????}}
這里面的courses是作為一個(gè)屬性值還是做一個(gè)對(duì)象名還是什么
2020-05-24
對(duì)于TestGeneric類來說,courses是他的一個(gè)屬性;但是這個(gè)屬性的類型是List的,就是父接口List的引用指向子類ArrayList的對(duì)象;又通過泛型規(guī)定了courses里的元素類型必須是Course及其子類的對(duì)象??梢赃@樣簡(jiǎn)單理解:courses是一個(gè)數(shù)組列表,它的元素必須是Course類及其子類的對(duì)象。