导入 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 执行相同的操作,但不是它的成员。
我正在准备 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 执行相同的操作,但不是它的成员。