()和.不是同级运算符吗,并且从左往右结合吗?

()和.不是同级运算符吗,并且从左往右结合吗?

类别操作符关联性
后缀() [] . (点操作符)左到右

那为什么(Chinese)one.Taijiquan();会先执行one.Taijiquan()呢?

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

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

2回答
好帮手慕阿满 2021-04-27 17:31:43

同学你好,( )中只有一个Chinese,所以运行结果也只是( Chinese ),然后向右运行,one.Taijiquan()是对象调用方法。由于没有向下转型,所以无法调用Taijiquan()方法,所以报错。

这里用代码告诉同学是先使用 . 调用方法,然后才进行的强制转换。由于没有向下转型,所以无法调用Taijiquan()方法,所以报错。如:

http://img1.sycdn.imooc.com//climg/6087d7d0091ab42904730125.jpg

如果需要先转换,需要将(Chinese)one作为一个整体,用小括号括起来,先强转再调用方法。

祝学习愉快~

好帮手慕阿满 2021-04-27 09:47:10

同学你好,()和.不是同级运算符。(Chinese)one.Taijiquan();这句代码中会先运行one.Taijiquan(),再强转。如果需要先强转,需要将其(Chinese)one再括起来。

祝学习愉快~

  • 提问者 童真模式启动 #1
    为什么这里两个运算符写在同一级呢?http://img1.sycdn.imooc.com//climg/6087b1c6095ab45307740852.jpg


    2021-04-27 14:40:12
  • home_11 回复 提问者 童真模式启动 #2

    是先进行括号内的运算,所以((Chinese)one).Taijiquan()才会先进行类型转换,Chinese两边的括号只是标识要进行强制类型转换,并不是类型转换的优先级为后缀

    2021-05-06 13:27:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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