关于双向关联的疑问

关于双向关联的疑问

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)这条语句注释掉之后,运行结果和之前一致。这条语句的作用是什么?

正在回答

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

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
    还想问下stu是Student这个类的对象,那么传入方法中的stu对象应该包含了学号,姓名,性别,年龄这4个属性。这样理解对吗?如果我要把这个对象中的年龄抽取出来,直接使用这个引用类型的数组可以吗?那该如何写代码?我上传的作业是你在批阅吗?
    2019-05-15 16:24:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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