類和對象的問題
public class ListTest {
public List courseToSelect;這什么意思 為什么用是成員屬性?
public ListTest(){
this.courseToSelect = new ArrayList(); ?生成名為courseToSelect的對象么 生成的都是courseToSelect的對象?
}
}
public class ListTest {
public List courseToSelect;這什么意思 為什么用是成員屬性?
public ListTest(){
this.courseToSelect = new ArrayList(); ?生成名為courseToSelect的對象么 生成的都是courseToSelect的對象?
}
}
2015-04-09
舉報
2015-05-19
List coursesToSelect = new ArrayList(); ?ArrayList實現(xiàn)了接口List,所以可以這樣定義一個List的對象,就像慕課網(wǎng)以前學(xué)過的IPlayGame ip1 = new Smartphone(); 原理是一樣的 List只是規(guī)范了ArrayList的一些必須實現(xiàn)的方法而已
2015-05-11
List是接口,public List courseToSelect;就是定義一個名為courseToSelect的接口。由于接口不能被實例化,所以
是錯的。那怎么實例化我們創(chuàng)建的接口courseToSelect呢?在java中不允許創(chuàng)建接口的實例,但允許定義接口類型的引用變量,通過該引用變量的引用實現(xiàn)了這個接口的類的實例化。簡單來講就是
?public?class?B?implements?A{} ???A?a?=?new?B();?//引用變量a被定義為A接口類型,引用了B實例 ???A?a?=?new?A();?//錯誤,接口不允許實例化在這里就是通過接口List的實現(xiàn)類ArrayList的對象的引用來實現(xiàn)的。
public?ListTest(){ this.courseToSelect?=?new?ArrayList();//通過對List接口的實現(xiàn)類ArrayList類的對象的引用來實現(xiàn) ??????????????????????????????????????//接口courseToSelect的實例化 }2015-04-09
courseToSelect 指向的是一個ArrayList對象。