导入Math.PI作为参考或值

时间:2015-02-27 17:30:55

标签: java math import static pi

我正准备用Java进行基本认证。

我对一个我正确的问题(!)的回答感到有些困惑: -

假设:

 public class Circle {
     static double getCircumference(double radius ) {
          return PI * 2 * radius;
     }
     public static double getArea(double radius) {
          return PI * radius * radius;
     }
}

哪个import语句将使代码能够编译并运行?

import java.lang.*;

import static java.lang.Math.PI;

import java.lang.Math.*;

import java.lang.Math;

我回答了import static java.lang.Math.PI;

但下面另外两个选项的解释让我困惑: -

语句import java.lang.Math;并导入java.lang.Math。*;不会启用代码编译和运行。这些import语句只允许Math.PI作为PI常量的引用。

我的问题是:导入语句只允许引用PI常量会出现什么问题?该值是否未初始化为零?

2 个答案:

答案 0 :(得分:5)

import java.lang.Math.*;

导入Math内声明的所有(可访问)类型。

这个

import java.lang.Math;

是多余的,因为Math是默认情况下导入的java.lang的一部分。

两者都要求你使用

Math.PI

访问该字段。

import static java.lang.Math.PI;

导入static成员Math.PI,以便您可以在源代码中使用其简单名称。

答案 1 :(得分:3)

'允许Math.PI作为PI常量的参考'意味着你的代码必须看起来像这样才能工作:

static double getCircumference(double radius ) {
      return Math.PI * 2 * radius;
 }
 public static double getArea(double radius) {
      return Math.PI * radius * radius;
 }

import java.lang.Math;导入课程java.lang.Math的内容是什么,因此您可以使用Math而不是限定版java.lang.Math来引用它。 import java.lang.Math.*;Math和所有嵌套类执行相同操作,但不是它的成员。