请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

倒数第二个new Foo().getName(),这块不是很明白?

倒数第二个new   Foo().getName(),有两个运算符new和点,new Foo()可以看作是带参数是19,不带参数是18,点也是19这块不是很明白?

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

1回答

DearestJW 2018-08-31 13:47:06

.运算符的优先级是19,就是指.会优于其他运算符之前执行,但是执行点的时候,是按照点前和点后的表达式依次执行的,因为Foo后面有个括号,所以new运算符是归Foo()这个函数的,所以按照优先级顺序执行就是:点运算符前的new Foo()先执行,再执行点运算符后的 getName()。

1 回复 有任何疑惑可以回复我~
  • 这里点的优先级和带参new都是同级19,所以就是从左到右的顺序。而不是像你说的先执行左面再执行右面。如果按照你说的,1+2*3,先计算乘号左面再相乘?
    回复 有任何疑惑可以回复我~ 2019-01-24 15:57:46
  • 是的,是需要先计算乘号左面,但是我所说的乘号左边的表达式在你这个情况下就是一个2,而并非你说的1+2,所以直接就是2*3。但是如果乘号前面是一个函数a(),那就需要先执行a(),再相乘。
    回复 有任何疑惑可以回复我~ 2019-01-25 14:05:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信