括号(括号)是否会改变方法的顺序?

时间:2016-05-04 01:32:13

标签: java parentheses

以类似于'的方式'数学,确实使用括号改变方法的顺序。

例如,

System.out.println(Math.abs(Math.min(-6,3)));

给出输出6.这是因为math.min在计算绝对值之前完成了它的工作吗?

我想确保情况确实如此,并不是数学课的怪癖。

谢谢

3 个答案:

答案 0 :(得分:4)

这不是括号排序的结果。虽然在使用运算符时可以使用括号来指定运算顺序,但这是语法问题。

Java中的方法调用是通过methodName(arguments)完成的,这意味着您无法以不同的方式表达您尝试表达的内容。这样的括号不用于表示优先级,但它们实际上是语言语法的一部分。

由于方法要求在调用发生之前评估其参数,因此必须在Math.min之前评估Math.abs

答案 1 :(得分:1)

是的,使用链式/嵌套方法调用会更改方法的顺序。首先执行内部的方法,然后执行该方法,依此类推。必须首先计算inside方法,以便围绕它的方法实际上有一个值作为参数传递。如果方法链从外部开始,则不会评估第一个方法的参数/参数,因此计算机将不知道要传递给该方法的值。

答案 2 :(得分:1)

是的,首先计算Math.min,然后计算Math.abs。您在数学课上学到的规则也适用于编程。

Math.abs(Math.min(-6,3));
Math.abs(-6);
6