导入 Math.PI 作为参考或值

Importing Math.PI as reference or value

我正在准备 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;

但是下面对其他两个选项的解释让我感到困惑:-

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

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

这个

import java.lang.Math.*;

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

这个

import java.lang.Math;

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

两者都需要您使用

Math.PI

访问字段。

这个

import static java.lang.Math.PI;

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

'Allow Math.PI as a reference to the PI constant' 意味着您的代码必须如下所示才能工作:

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; 所做的是导入 class java.lang.Math,因此您可以使用 Math 而不是合格版本 java.lang.Math 来引用它。 import java.lang.Math.*;Math 和所有嵌套的 class 执行相同的操作,但不是它的成员。