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

关于案例中的一些疑问(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();

}


正在回答

3 回答

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

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

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

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

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

天涯蝶舞 提问者

1、请问为什么有子类时,父类就必须要有一个无参构造方法呢?是起什么作用的呢?2、ListTest类中已经通过coursesToSelect.add和.addAll对新增对象进行添加,为什么在构造方法中还要创建一个new ArrayList()给coursesToSelect集合呢?ArrayList()与List有什么区别?this.coursesToSelect = new ArrayList();这句具体实现了什么呢?coursesToSelect获取到了什么呢?没太明白?这一句能去掉吗?请详解,非常感激!
2015-12-28 回复 有任何疑惑可以回复我~
#2

_泥人_ 回复 天涯蝶舞 提问者

1、当你创建一个类的对象时,首先会调用这个类构造方法。构造又分为有参构造和无参构造,当你没有自己定义带有参数的构造时,系统会自动为该类创建一个(看不见的)无参构造以供我们在创建对象时用。而子类的构造函数(有参和无参)会自动执行(自动为子类的构造方法添加一个我们看不见的super()方法,我们也可以自己加上去效果一样,但必须是在子类构造方法的第一行加上;)父类的构造方法,默认会执行父类的无参构造(因为super(),调用的就是父类的无参构造,也可以自己定义来调用父类的有参构造super(name);),那你父类没有这个无参构造,在创建子类的时候编译器就会报错,提示。
2015-12-29 回复 有任何疑惑可以回复我~
#3

_泥人_ 回复 天涯蝶舞 提问者

2、coursesToSelect本来是ListTest类中的一个属性,什么时候给他实例化的呢?就是什么时候让他变成了一个ArraysList集合了呢?对!你猜的没错,自动执行了他的无参构造,实例化了coursesToSelect,让他便成了一个集合。关于List和ArraysList我研究的也不是很深,List是一个接口,所以他不能直接被new,ArraysList是List接口一个重要的实现类。
2015-12-29 回复 有任何疑惑可以回复我~

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

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

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

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

举报

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

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

进入课程

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

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