老师,我还是不太理解这里的双向关联

老师,我还是不太理解这里的双向关联

public void addStudent(Student stu) {

for(int i=0;i<this.getMyStudents().length;i++) {

if(this.getMyStudents()[i]==null) {

stu.setStudentSubject(this);  // 将studentSubject属性赋值为当前对象

this.getMyStudents()[i]=stu;  // 

//2、将学生个数保存到studentnum

this.studentNum=i+1;

return; // 如果有返回值,就带返回值跳出循环,如果没返回值,直接跳出循环

}

}

1、stu.setStudentSubject(this); 

 //就是将studentSubject属性赋值为当前对象Subject吗?这实现了什么关联?

2、this.getMyStudents()[i]=stu;  // 这是把Student这个对象里的信息赋给当前对象Subject的数组吗?

这又怎么关联了?

3、谁是当前类名,谁就是对象吗?

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

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

1回答
吃吃吃鱼的猫 2019-06-18 11:32:35

同学你好,

这里的双向关联是指专业类中为有关于学生的属性赋值。在学生类中为有关于专业的属性赋值。

1、stu.setStudentSubject(this);是将该学生的专业属性赋值为当前对象的值。实现了学生关于专业的关联。

2、this.getMyStudents()[i]=stu;  这是在Subject对象中,为此专业中的存放学生数组的元素赋值。实现了专业关于学生的关联。

3、类是对象的抽象,而对象是类的具体实例。this表示当前对象,其次对象是被创建出来的,同学关于此问题有什么不明白的,请详细描述下哦~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 那Student类中的对象是stu1,Subject类中的对象是sub1,那这里的stu.setStudentSubject(this);是将该学生的专业属性赋值为“当前对象”的值,这个当前对象是什么?
    2019-08-14 14:35:55
  • 同学你好,当前对象就是指,我们通过sub1.addStudent(stu1);传递过去的stu1对象 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-08-14 15:37:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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