关于双向关联的疑问
public void addStudent(Student stu){ /** * 1、将学生保存到数组中 * 2、将学生个数保存到studentNum */ // 1、将学生保存到数组中 for(int i=0;i<this.getMyStudents().length;i++){// 循环条件是获取到声明好的数组的长度 if(this.getMyStudents()[i]==null){// 判断如果存放数组元素的空间为空,那么将学生的信息保存在这个空间中 // stu.setStudentSubject(this);//调用stu这个对象下setStudentSubject方法,实现学生和专业之间的关联 this.getMyStudents()[i]=stu;//接着SchoolTest类第26行注释,实现了专业和学生之间的关联 // 2、将学生个数保存到studentNum this.studentNum=i+1; return; } } }
我把学生关联对象stu.setStudentSubject(this)这条语句注释掉之后,运行结果和之前一致。这条语句的作用是什么?
14
收起
正在回答
2回答
同学你好,1、stu是Student这个类的对象,那么传入参数stu对象是包含了学号,姓名,性别,年龄这4个属性的,同学的理解是正确的!
2、"如果我要把这个对象中的年龄抽取出来,直接使用这个引用类型的数组可以吗?",这个stu这个对象是一个Student类型的对象,只有一个age属性,并不能直接数组遍历获取所有的学生的年龄!
3、同学上传的作业有专门的老师来批阅,同学有什么问题我可以转达哦!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-05-15 16:06:39
同学你好,这里 stu.setStudentSubject(this); // 将传入参数(stu)学生中的学科设置为本类中的学科,实现学生与学科的关联
this.getMyStudents()[i]=stu; //设置本学科类中学生人那个数组中的下标为i的学生为传入的学生stu,实现学科与学生的关联
通过上述的两条语句实现学生与学科的双向关联!
因为stu.setStudentSubject(this); 是实现学生与学科的关联,而题目的最后输出是通过学科Subject来调用方法以及属性,所以最后对输出结果没有影响!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题
登录后可查看更多问答,登录/注册
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星