4.2 再谈组合

与数学函数一样,Java 方法也是可以组合的,这意味着可在一个表达式中包含另一个表达式。例如,可将任何表达式用作方法的实参:

  1. double x = Math.cos(angle + Math.PI / 2.0);

这条语句将 Math.PI 除以 2,再将结果与 angle 相加,然后计算得到的和的余弦。还可将一个方法的结果用作另一个方法的实参:

  1. double x = Math.exp(Math.log(10.0));

在 Java 中,方法 log 总是以 e 为底,因此这条语句计算以 e 为底的 10 的对数,再将结果作为指数计算 e 的相应次幂,然后将得到的结果赋给变量 x

Math 类的有些方法接受多个实参,例如,Math.pow 接受两个实参,并计算第一个实参的第二个实参次幂。下面的这行代码将值 1024.0 赋给变量 x

  1. double x = Math.pow(2.0, 10.0);

在用 Math 类的方法时,遗漏 Math 是一种常见的错误。例如,如果试图调用 pow(2.0, 10.0),将出现类似于以下的错误消息:

  1. File: Test.java [line: 5]
  2. Error: cannot find symbol
  3. symbol: method pow(double,double)
  4. location: class Test

消息 cannot find symbol 令人迷惑,但最后一行提供了有用的线索:编译器试图在调用方法 pow 的类(Test)中查找它。如果没有指定类名,编译器将在当前类中查找。