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

为什么取出课程内容的时候要再次实例化一个对象?

Course cr1 = new Course("1","数据结构");
coursesToSelect.add(cr1);
//????? 疑问在此 为什么要再次实例化一个对象
Course temp = (Course)coursesToSelect.get(0); 
System.out.println("添加了课程:"+temp.id+":"+temp.name);

//我直接在输出里 提取对象cr1 也可以
System.out.println("添加了课程:"+cr1.id+":"+cr1.name);

//两个输出结果是一样的


正在回答

3 回答

不是实例化,是引用,从集合中取出一个对象需要一个引用接收

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

慕码人5393438

实际上也可以写成这样:System.out.println("添加了课程:"+(Course)coursesToSelect.get(0).id+":"+(Course)coursesToSelect.get(0).name);
2018-10-16 回复 有任何疑惑可以回复我~
#2

海边的卡夫 提问者 回复 慕码人5393438

那为什么不直接写成 cr1.name cr1.id
2018-10-16 回复 有任何疑惑可以回复我~
#3

慕码人5393438 回复 海边的卡夫 提问者

在实际运用中,数组的添加和查询通常不在一个方法、类甚至是系统中,也就是说超出了cr1的作用范围,这时当你想要去出数据时,就需要一个引用去接收他
2018-10-16 回复 有任何疑惑可以回复我~
#4

慕码人5393438 回复 海边的卡夫 提问者

在这个案例中可以直接cr1.id ,但这样集合数据存储作用就无法体现了
2018-10-16 回复 有任何疑惑可以回复我~
#5

海边的卡夫 提问者 回复 慕码人5393438

好 谢谢 !
2018-10-16 回复 有任何疑惑可以回复我~
查看2条回复

因为课程需要添加到List中去,再从List中取出。你那样写的话,不就缺少了这一过程吗

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

其实引用也不是必要的,只不过每次都写(Course)coursesToSelect.get(0)这么一长串是非常麻烦的,而且当你想要改变list中存储的数据而又希望可以获取修改前的数据时,就必须使用创建一个引用了

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

举报

0/150
提交
取消

为什么取出课程内容的时候要再次实例化一个对象?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号