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

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

這樣理解有錯嗎?求指教

實例中:Course類中有int-ID,和String-name兩個屬性。

在ListTest類中,先定義一個屬性是public List coursesTOSelect;定義一個public開放性,List接


口類型,名稱coursesToSelect的屬性(成員、變量)。因為List只是一個接口,里面只有抽象的方法


,不能具體實現,所以指向了ArrayList類的功能。同時ArrayList類里面也已經將List接口中的方法


實現化包含了。符合接口定義的抽象方法規范必須實現這一規則。

創建構造方法:public ListTest(){this.coursesToSelect = ArrayList();}

方便創建一個List類型coursesToSelect屬性指向ArrayList新對象時重復書寫代碼,可以直接調用。

因為是構造方法ListTest類本身,所以構建類對象本身的時候,就會運作此段代碼。


public void testAdd(){/*此方法創建一個課程對象,并通過調用add方法,添加到備選課程List中*/

? ?Course cr1 = new Course("1","數據結構");/*創建一個課程類的對象并輸入參數*/

? ?coursesToSelect.add(cr1);/*把創建好的課程類的對象cr1,用List類型功能指向ArrayList的變


量courseToSelect,運用ArrayList的方法.add,加入到變量中去*/

? ?Course temp = (Course)coursesToSelect.get(0);/*cr1對象創建的時候本來是Course類型,因為


通過List-ArrayList.add加入到它們的變量中corsesToSelect中去,是集合之中的其中一員類型隨之


已轉化為Object是所有類的父類,最為原始的類,取出來調用,需要重新定義聲明一個Course類的對


象temp進行存放,并將其強制轉化為Course類,因為本來原始數據就是Course類,所以轉化過程中不


會有溢出或者出錯,get的參數值為0是下標,帶有數組的特性,首個數據存放容器地址是0,跟數組的


不同之處是,數組定義的長度是既定的,而且不去進行改動容器中的數據和對應的下標是不會有改動


。List-ArrayList中的數據和下標是會隨之新添加的新對象而進行遞增的,添加時不進行特定操作默


認添加下標為0,原本在0下標的數據自動推進位置+1,整個List-ArrayList屬性容量也會+1,值得一


提的是在新添加對象的時候,新添加指定下標位置不能超過原有的長度,只能在頭部尾部或中間位置


插入,不能在頭部之前或尾部之后進行操作*/

? ?System.out.println("添加了課程:"+temp.id+":"+temp.name);/*輸出重新定義的對象temp中的


屬性*/

}


正在回答

2 回答

理解的不錯。ArrayList類是接口List的一個實現類,List接口主要是提供某些方法的定義,而ArrayList類用自己的方式實現了接口List中定義的方法,所以ArrayList類定義的對象都能實現接口List定義的方法。所以在實例化時候,是對List接口的實現類ArrayList運行其構造函數,即this.coursesToSelect = ArrayList()。

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

太多了沒看完。

這一行有錯public ListTest(){this.coursesToSelect = ArrayList();},

ArrayList()是ArrayList類的構造函數,要調用這個函數創建ArrayList類的對象,需要new關鍵字,這個構造函數跟普通方法的區別。

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

舉報

0/150
提交
取消

這樣理解有錯嗎?求指教

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

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

幫助反饋 APP下載

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

公眾號

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