为了账号安全,请及时绑定邮箱和手机立即绑定

类和对象的问题

public class ListTest {

public List courseToSelect;这什么意思 为什么用是成员属性?

public ListTest(){

this.courseToSelect = new ArrayList();  生成名为courseToSelect的对象么 生成的都是courseToSelect的对象?

}

}




正在回答

3 回答

List coursesToSelect = new ArrayList();  ArrayList实现了接口List,所以可以这样定义一个List的对象,就像慕课网以前学过的IPlayGame ip1 = new Smartphone(); 原理是一样的 List只是规范了ArrayList的一些必须实现的方法而已

1 回复 有任何疑惑可以回复我~

List是接口,public List courseToSelect;就是定义一个名为courseToSelect的接口。由于接口不能被实例化,所以

List courseToSelect = List A;

是错的。那怎么实例化我们创建的接口courseToSelect呢?在java中不允许创建接口的实例,但允许定义接口类型的引用变量,通过该引用变量的引用实现了这个接口的类的实例化。简单来讲就是

 public class B implements A{}
   A a = new B(); //引用变量a被定义为A接口类型,引用了B实例
   A a = new A(); //错误,接口不允许实例化

在这里就是通过接口List的实现类ArrayList的对象的引用来实现的。

public ListTest(){
this.courseToSelect = new ArrayList();//通过对List接口的实现类ArrayList类的对象的引用来实现
                                      //接口courseToSelect的实例化
}


2 回复 有任何疑惑可以回复我~
#1

小肠杆君

更正一下第一行代码。 List courseToSelect = new List;
2015-05-11 回复 有任何疑惑可以回复我~

courseToSelect 指向的是一个ArrayList对象。

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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409787    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

类和对象的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信