关于双向关联

关于双向关联

我想问下 stu.setStudentSubject (this) 这个操作 和不加这个代码, 运行的结果不都一样吗? 那为什么还要多此一举加这个代码呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿慧 2020-12-06 17:26:48

同学你好,加不加stu.setStudentSubject (this)代码,运行结果可能会不一样。

可以简单理解为双向关联可以让学生实例化的时候不用添加专业,更加准确的理解如下:

双向关联的目的就是保证,在专业类中为有关于学生类的属性赋值。在学生类中为有关于专业类的属性赋值。这样就可以互相访问到对方,也就实现了双向关联。简单来说,就是专业类中也含有学生类的属性,学生类中也含有专业类的属性信息。

这样就可以简化在创建stu1时,不需要sub1的参数设置为stu1对象。然后在添加学生方法中进行统一的双向关联使代码更加简洁。

  • 提问者 rock221 #1
    我试了啊,不加这个代码,和加这个代码运行结果一样啊,老师试试啊
    2020-12-06 17:30:12
  • 好帮手慕阿慧 回复 提问者 rock221 #2

    同学你好,当创建Student对象时传入的专业对象与添加学生时的专业对象不一样时,就会出现数据不一致问题。

    例如,去掉stu.setStudentSubject(this); 如下:

    http://img1.sycdn.imooc.com//climg/5fccb1bf093779d304650300.jpg

    运行结果如下:

    http://img1.sycdn.imooc.com//climg/5fccb27909b46ce908470308.jpg

    张三所属的专业是"统计学"。往"计算机科学与应用"专业中添加张三后,张三的专业应该是计算机科学与应用,而不是统计学。

    所以,为了数据的一致性,应该在addStudent()方法中添加stu.setStudentSubject (this);代码。

    祝学习愉快~

    2020-12-06 18:30:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师