关于数组初始化的问题
老师你好,我们是通过构造方法参数列表中设置Studen数组参数来获取学生信息的是吧,然后通过this.setMyStudents(myStudents);对set方法中的Student [ ] myStudents参数进行赋值操作对吧,那么问题1
假设我们的Student[] myStudents并未进行相应的初始化,那么他是如何能被赋值的呢?
问题2
get方法获取数组的值来自于set方法,如果问题一set无法被赋值,那么get方法是不是也就没有办法完成取值数组了呢
问题三
通过我的反推,以及老师的视频显然,即使数组没有被初始化,把初始化语句放在get方法中依然可以正常完成set方法中数组的赋值,那么程序的运行顺序显然也是先经过set数组被赋值,然后才可以被get取值把,那么是不是就意味着我的问题1是错误的,那么我的思考问题出在了哪里呢请老师解决,谢谢
正在回答 回答被采纳积分+1
1、同学你好,关于:
假设我们的Student[] myStudents数组没有被初始化,那么构造方法怎么给在set方法中的此数组进行传值呢?
首先:给这个数组赋值时,这个myStudents可以没有被初始化的。只是,假如我们需要用到该数组进行调用方法,输出,等等时,需要这个myStudents初始化完成。
因为本题中,没有用到构造函数以及set方法给这个数组赋值,而是在addStudent方法中需要获取数组,并给数组中的元素赋值,所以,这里老师在get方法中给数组初始化了,意味着,只要你想要用这个myStudents数组,我肯定给你初始化好了。
2、初始化和赋值有些区别。
一般,我们说初始化是指,给它new了一个对象。比如new Student[200]。
这里是给它声明了一个可以存放200个Student的一个空间,但是里边并没有放学生呢。也就是这个数组中是没有元素的。
而set中的赋值,是指吧传尽量的数组赋值给myStudents。当然,传进来的有肯能是一个和新new的数组,也有可能是已经存放好学生的数组。
而get中的初始化this.myStudents = new Student[200]; 是为了防止调用数组时,这个myStudent是null,而造成空指针异常。
如果我的回答解决了你的问题,请采纳,祝学习愉快
同学你好,
1.在调用setMyStudents方法时,为myStudents数组完成了赋值操作哦~
如下图所示:
this.myStudents=myStudents;即是对数组myStudents进行赋值。
2.当调用get方法时,先判断是否使用了set方法为成员变量myStudents赋值,如果没有的话,那么在get方法中初始化myStudents数组。
3.首先理解
this.myStudents=要赋的值;
就是为成员变量myStudents赋值。
set方法中直接使用此语句为myStudents赋值。
get方法中先进行数组是否为空的判断,如果数组为空的话,再初始化成员变量myStudents。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
问题一修整为:
假设我们的Student[] myStudents数组没有被初始化,那么构造方法怎么给在set方法中的此数组进行传值呢?
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星