关于for循环的问题

关于for循环的问题

请问老师for循环是如何将学生属性的所有信息传入到学生数组中?

正在回答

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

3回答

你好!

1、关于for循环如何将学生属性的所有信息传入到学生数组的问题,就是通过下面代码中的this.getMyStudents()[i]=stu;将stu对象的值赋值给数组,stu肯定是调用addStudent()方法前创建的对象,所以就是把学生信息传入到学生数组了。

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

2、stu.setStudentSubject(this); 这条语句不是给数组元素赋值的,这个是后面3-7小节介绍学生和专业双向关联的时候用到的。在本小节中可以先不用。因为源码是这门课程源码,所以才会有这条语句。

视频里面的数组赋值不是通过构造方法传递进来的,构造方法并没有涉及到数组赋值的内容。

3、this.getMyStudents()[i]=stu;这句话是不能去掉的,如果去掉的话学生没有赋值到数组中。下次再添加学生的时候,会发现学生还是一开始那么多,根本没有增加。if语句就是判断数组元素是否为null,如果为null说明该位置处没有学生对象,所以可以赋值。如果不赋值,数组中就永远没有元素,第一个数组元素也永远为null,统计结果就不对了。

4、关于为什么不用setMyStudetns()[i]的问题,setMyStudents()方法是有参数并且无返回值的,它是不能和[i]一起使用的。此处的this.getMyStudents()是获取了数组,this.getMyStudents()[i],相当于Students[] stu1=his.getMyStudents(); stu1[i]=stu;所以并不是get方法赋值,而是get方法返回的数组,然后进一步进行赋值操作。

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

好帮手慕小班 2019-05-21 11:49:24

同学你好,1、这里我们需要给这个数组属性来赋值,get数组其指向的就是属性中的这个数组,例如:

this.getMyStudents()[i]  就是属性中数组的第i个元素!

2、如果要用this.setMyStudents()方法,这样操作也是可以的,就是把this.getMyStudents()[i]=stu 后,再用set方法设置回去,这样做的没有意义哦!

3、需要在if中设置哦!判断这个数组中元素还没有被赋值的情况下,将这个对象赋值进入哦!

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

  • 提问者 慕运维lh #1
    我懂你的第一点的意思啊,我的意思是你通过什么语句来赋值啊。下载的文件中不是多了一条语句吗? stu.setStudentSubject(this); 请问这句话是用来赋值的吗?我真的是服了你们。视频讲解的代码跟下载代码不一样。视频里面的数组赋值是通过构造方法参数传递直接传送到数组里面的吗??而下载的代码中并没有通过构造方法来传递值给数组,所以说需要加上我刚才那句话对吧?是这个意思吗??
    2019-05-21 23:22:15
  • 提问者 慕运维lh #2
    那如果是我理解的那个意思的话。在视频里面讲解的代码根本就不需要this.getMyStudents()[i]=stu;这段程序了对吧?因为我判断出如果学生数组中的对象如果为空的话此时知道是第几个i直接可以跳出循环输出i的结果。那就不需要这么麻烦了对吧??
    2019-05-21 23:27:03
好帮手慕珊 2019-05-20 11:53:27

        你好!你是指下面的for循环吗?在下面的方法中,方法参数就是要添加的学生信息,在调用该方法前,会创建Student对象,然后将Student对象作为方法参数传入。

       在for循环中会遍历数组,找到第一个值为null的数组元素,将学生对象赋值给该数组元素,因为学生对象中包含学生的属性信息,这样就是将学生信息添加到数组中了。

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

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

  • 提问者 慕运维lh #1
    this.getMyStudents()[i]=stu; 这句话的意思就是将学生的对象传送到数组里面吗,那为啥不应该用setMyStudents()[i]吗?get是只读的意思,怎么能赋值呢?而且把这个对象的值传入到数组也应该放在if语句的外面吧?老师你能懂我说的意思对吧
    2019-05-20 22:11:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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