有个地方看不懂

有个地方看不懂

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

老师的代码中,one.call();调用了call方法,然后用this代码调用了run方法吗?能这样写this.run();或者run();吗?如果不能为什么?

最后run方法中()里面的参数Cat one表示什么?不是只能放基本数据类型吗?

正在回答

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

2回答

同学你好,1. 同学这么理解也是可以的。

2. 同学定义的 run(String one)方法是多了一步赋值操作,但Cat one类型的参数,并不是只是为了赋值,而是可以通过传递过来的对象引用地址,调用类中的属性与方法。


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

好帮手慕小尤 2020-11-01 18:56:41

同学你好,1. 在call()方法中,run(this)是调用当前类的run()方法,参数是当前类(this作为方法参数进行传递,代表调用方法的当前对象)。

2. 同学描述的是在Cat类中还是CatTest类中,如果是在Cat类中,则是可以通过this.run(this)或者run(this)方法(调用run()方法需要传递参数)调用的,但如果是在CatTest类中,则无法直接调用run()方法的,需要通过实例化的one对象进行调用的。如:one.run(one)

3. 参数可以是对象类型,也可以是基本数据类型 。如本案例中,run()方法中的Cat one参数,Cat one代表参数名one,类型是Cat 类类型。

  • 提问者 慕用4915122 #1
    如果我这么写public void run(String one){ name=one;是不是多了一步这个,多了一步赋值操作,如果写Cat one就少了一步赋值操作? }
    2020-11-01 19:30:53
  • 提问者 慕用4915122 #2
    run(this)可以理解成在当前类中寻找run方法吗?
    2020-11-01 19:36:41
  • 提问者 慕用4915122 #3
    run(this);是不是可以理解成在当前类寻找run方法?
    2020-11-01 19:37:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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