课程问题(实例化问题)

课程问题(实例化问题)

图片描述

this.studentSubject=new Subject();
1、首先实例化的格式应该是:类名 对象名=new 类名(); 这里为什么是this.student=new Subject();?
2、而且Subject是另外一个类吧?this.studentSubject应该代表一个对象的属性,为什么可以等于Subject类,也就是表示student对象在Subjec类里面?????

正在回答

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

1回答

同学你好

1、1)对象实例化指的是实例化产生一个类的实例,格式为:new 构造方法;

    2)new Subject()表示实例化Subject类型的对象,而this.studentSubject=new Subject()表示将实例化对象并赋值给Subject类型的成员属性studentSubject。

    this.studentSubject指的是Student类中的私有成员变量studentSubject。所以this.studentSubject=new Subject();也可理解为Subject studentSubject=new Subject();,如下:

    http://img1.sycdn.imooc.com//climg/60e2b2e9095d681e05160315.jpg

2、studentSubject是Student类的一个属性,也就是可以通过Student类中的studentSubject属性调用与赋值Subject类的对象。

祝学习愉快~

  • 老师您好,你上面写的回答我看的明白,但是还有一些问题想请教您.getStudentSubject里面,if条件指的是如果本类中的studentSubject没有实例化,那么将自定义类Subject实例化并赋值给this.studentSubject.按照测试类中的运行结果,这个自定义类应该是之前写好的装着专业信息的那个类,那个类我们在测试的时候已经实例化了.我的疑问是,假如我头铁,我就不实例化,那么测试类应该怎么写才能让我看到这个if语句起作用了呢?

    2023-02-15 15:52:18
  • 同学你好,若想看到getStudentSubject方法中if语句起作用,可直接通过无参构造方法创建Student类的对象。例如:

    Student student = new Student();

    祝学习愉快~

    2023-02-15 16:03:11
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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