方法内部类调用问题

方法内部类调用问题

https://img1.sycdn.imooc.com//climg/623c26b1090b9ac010260630.jpg

测试类:

https://img1.sycdn.imooc.com//climg/623c26c8095271ff09970511.jpg

问题描述:

getHeart方法用object我能理解,因为当是还没有这个类,但是返回值用new Heart().beat();

我不明白为啥啊,而且主方法中为什么那样调用,

2.我有定义了一个sleep方法为什么调用不了呢?


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

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

1回答
好帮手慕小脸 2022-03-24 17:10:55

同学你好,

1、主方法中为什么那样调用?是指b.getHeart()吗?

如果是,这种写法相当于对象名. 方法名(),相当于调用Person类的getHeart()方法,是正常的

2、sleep方法是没有返回值的,所以这里按照同学的写法使用return是不可以的,将该方法定义为String类型即可

祝学习愉快~



  • 提问者 軍度 #1

    new Heart().beat();

    我不明白为啥啊


    2022-03-24 18:54:52
  • 好帮手慕小脸 回复 提问者 軍度 #2

    同学你好,

    首先Object是所有引用类的父类,我们这里虽然return后边跟的是他的调用,但是它实际return的是调用这个方法后return的内容,也就是这个字符串

    https://img1.sycdn.imooc.com//climg/623d207409ec72e105300154.jpg

    即new Heart().beat()返回的是String类型的内容,具体可以这样理解:

    1、new Heart()为创建Heart类的对象,然后.beat()方法是创建Heart类的对象去调用Heart类中的beat()方法。

    2、beat()方法返回为String类型,而Object类型是所有类型的父类,所以返回的也是String类型的结果,也就是说代码是可以正确返回的。

    祝学习愉快!

    2022-03-25 09:53:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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