2-4的方法调用

2-4的方法调用

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

老师,代码:char ch=str.substring(3,6).charAt(1);

这段代码使用str连续调用两个方法,我真的不理解,str.substring(3,6)的结果是def,然后是:def.charAt(1),这能调什么方法?

正在回答

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

3回答

同学你好,理解是正确的。

祝:学习愉快~

  • 鱼儿0001 提问者 #1
    好的,谢谢老师!
    2019-06-22 14:13:07
吃吃吃鱼的猫 2019-06-21 16:06:49

同学你好,

1、substring方法是在当前字符串上进行截取后,创建的一个子字符串。

只有在需要的时候去调用。一般情况下,不会使用该方法专门去创建String类型的对象。

2、引用.方法名的原因在于,引用指向当前对象,先查找相应对象,然后再通过“.方法名”的方式,去寻找该对象中的方法。

str.substring(3,6).charAt(1),同学可以理解为:省略引用寻找对象的那一步,直接调用方法。

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


  • 提问者 鱼儿0001 #1
    谢谢老师的耐心回复。关于第二个问题,理解的越来越清晰了,其实本身就是调用对象里的方法,对象.方法名才是最直接的,引用.方法名是多绕了一个步骤去调用方法,老师我的理解对吗?
    2019-06-22 11:46:07
好帮手慕阿满 2019-06-20 17:00:36

    同学你好,str.substring(3,6)的返回值是String类型的def,而charAt()方法是String类型的方法,所以substring(3,6)的返回值可以调用charAt()方法。

    同学可以将其分开理解,首先str.substring(3.6)返回一个String类型对象,如:

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

然后使用该String类型对象调用charAt()方法,最后输出。

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

  • 提问者 鱼儿0001 #1
    谢谢老师的耐心回复。1、老师说,str.substring(3,6)返回值是String类型的def对象,那么说这是一个新的创建String类对象的方式喽?怎么String类对象的创建这么灵活且富有弹性呢?2、之前的学习里,调用类的方法模式都是:对象的引用.方法名(),但是此题没有引用哦,char ch=str.substring(3,6).charAt(1);这段代码没有引用.charAt(1),而是对象.charAt(1),这怎么理解啊
    2019-06-21 10:54:04
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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