天涯蝶舞
2015-12-27 22:06
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();
}
1、((Course) coursesToSelect.get(4)).id,再加一对括号。
2、Course的子类要调用这个空的构造体,没有子类的话可以不用。(看编程习惯,一般都是要有的)。
3、在构造器里写的东西,都是会在创建这个类的对象的时候执行的,这里的意思是,在创建这个ListTest类时,new一个新的List给当前类的List。
新手,如果有什么错误的请指正,共同学习。
List是一个接口,接口中的方法都是抽象方法,是没有方法体的。必须借助ArraysList来实例化。
空的构造器可以省去不写,在没有自己定义构造器的时候,虚拟机会自动加上它。但是一个好的编程习惯就是自己把它写出来,因为继承它的子类的构造方法会去调用父类空参的构造器,如果我们在父类中定义了带参数的构造器,那么在编译子类的时候就有可能出错。
Java入门第三季
409792 学习 · 4340 问题
相似问题