getStudentSubject()方法中加了判断是否多余

getStudentSubject()方法中加了判断是否多余

本章节在getStudentSubject()方法中加了判断,如果没有实例化,会实例化一个对象,但是他实例化的这个无参数对象,里面的属性都没有赋值,String类型也是返回一个null不是吗?那这个(this.studentSubject==null)判断貌似有点多余。

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

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

1回答
好帮手慕小班 2020-08-06 11:35:06

同学你好,studentSubject属性是一个Subject类型的对象属性

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

如果这个studentSubject对象为null,就创建一个Subject类型的对象,它会具体指向一块空间,只是它的属性为默认值,所以这个判断并不多余。

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

  • 提问者 慕粉6099588 #1
    老师,所以说就是即使默认值也是为null,但是因为创建了对象,所以在堆里开辟了空间,所以不一样,但是结果都是null对吗?
    2020-08-06 21:05:48
  • 好帮手慕小脸 回复 提问者 慕粉6099588 #2
    同学你好,并不是结果都是null,Subject对象是指向一块空间,studentSubject属性是为null的,同学不要搞混哟 祝学习愉快~
    2020-08-07 10:22:36
  • 张小毛 回复 提问者 慕粉6099588 #3
    同学,你这个问题,我试了一下,如果不判断会报错的,我的理解是这样的:因为我们创建这个studentSubject成员属性是为了用第3种方法关联两个类,第三种方法种this.getStudentSubject().getSubjectName()以及this.getStudentSubject().getSubjectLife()可以理解成在类外调用Subject类的成员函数,类似在主函数中调用Subject类的成员函数,我们要先实例化一个Subject类的对象,再去调用getSubjectName()或者getSubjectLife(),Student类中的studentSubject是该类的一个成员属性,直接用成员属性调用方法应该是不对的,方法的调用一般是通过对象或者类名(静态方法)。
    2020-08-08 17:55:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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