在带参构造函数里用this()调用无参构造函数有什么实际意义么?

在带参构造函数里用this()调用无参构造函数有什么实际意义么?

为什么需要再构造一遍?

正在回答

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

3回答

首先解答一个你可能的疑惑点,你写的无参或者有参构造方法并不是创造出一个对象的功能。你在构造方法里写的那一部分只是用来初始化的,真正的构造出一个对象的功能,是因为所有对象都继承自Object类,所有的构造方法都会调用父类构造方法,而那个Object类里的方法才是实现构造出一个对象的功能,你写的构造方法实际隐含了

public Cat(){
    super();
}//无参
public Cat(String name){
    super();
    this.name = name;
}

都要通过super( )调用父类构造方法。

另外你说的有参构造方法里调用无参,我印象中没有,但是无参构造方法调用有参是有的

public Cat(){
    this("Tom",2,"捉迷藏");
    //以上相当于 this.name = "Tom";this.age = 2;this.hobby = "捉迷藏";
}
public Cat(String name,int age,String hobby){
    this.name = name;
    this.age = age;
    this.hobby = hobby;
}


好帮手慕小脸 2020-04-11 12:09:49

同学你好,同学是要问main方法中使用了带参构造方法为什么还要定义无参构造方法吗?

如果是,这里同学可以看如下代码:

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

给属性赋值不单单只有有参构造方法,使用无参构造时也可以的。只是这里需要用set方法来进行属性赋值。

如果不是上述意思,同学可贴出代码。方便老师解决问题~

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


  • 提问者 沙度的微笑 #1
    不是的, 我想问的是, 定义了带参构造和无参构造的同时, 什么场景需要在带参构造中设计调用无参构造? 为什么在带参构造里调用无参构造? 这样做有什么好处?
    2020-04-11 12:30:15
  • 好帮手慕小脸 回复 提问者 沙度的微笑 #2
    同学你好,楼上同学回答不错,同学可以参考一下~ 在开发过程中,很少有在带参构造中设计调用无参构造,所以这里同学无需纠结。 祝学习愉快~
    2020-04-11 15:37:49
好帮手慕小脸 2020-04-10 15:20:02

同学你好,

1、当某一构造方法要调用另一构造方法时,实现该操作必须使用this关键字来调用。

2、为什么需要再构造一遍?

并没有再重新构造一遍,只是使用this关键字进行调用而已

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

  • 提问者 沙度的微笑 #1
    那在main函数里, 使用带参构造函数new了一个对象, 然后这个函数又调用无参构造函数, 现实写程序里, 这样做的理由是什么呢?
    2020-04-11 11:43:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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