问答详情
源自:4-6 学生选课—课程查询

关于案例中的一些疑问(3个)!

Course temp5 = (Course) coursesToSelect.get(2);

Course temp6 = (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:" + temp5.id + ":" + 

temp5.name + ";" + temp6.id + ":" + temp6.name);

为什么不能直接写成(Course) coursesToSelect.get(4).id和(Course) coursesToSelect.get(4).name直接获取id和name呢?会提示id和nameid cannot be resolved or is not a field?

 

另外Course类中为什么要创建一个空的构造器呢?可以去掉吗?

public Course(String id, String name) {

this.id = id ;

this.name = name;

}

public Course() {    //空的构造体    

}

 

ListTest类中的构造方器的意思和作用是什么,没太看明白!

public ListTest() {

this.coursesToSelect = new ArrayList();

}


提问者:天涯蝶舞 2015-12-27 22:06

个回答

  • _泥人_
    2015-12-27 22:59:30
    已采纳

    1、((Course) coursesToSelect.get(4)).id,再加一对括号。

    2、Course的子类要调用这个空的构造体,没有子类的话可以不用。(看编程习惯,一般都是要有的)。

    3、在构造器里写的东西,都是会在创建这个类的对象的时候执行的,这里的意思是,在创建这个ListTest类时,new一个新的List给当前类的List。

    新手,如果有什么错误的请指正,共同学习。

  • 糖醋肉3984350
    2016-09-30 15:24:09

    List是一个接口,接口中的方法都是抽象方法,是没有方法体的。必须借助ArraysList来实例化。

  • 产品经理不是经理
    2015-12-27 23:06:44

    空的构造器可以省去不写,在没有自己定义构造器的时候,虚拟机会自动加上它。但是一个好的编程习惯就是自己把它写出来,因为继承它的子类的构造方法会去调用父类空参的构造器,如果我们在父类中定义了带参数的构造器,那么在编译子类的时候就有可能出错。