我正在准备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;我回答了导入静态java.lang.Math.PI;
但下面两个选项的解释让我感到困惑:
语句导入java.lang.Math;和导入java.lang.Math.*;将不会使代码能够编译和运行。这些导入语句只允许Math.PI作为PI常量的引用。
我的问题是: import语句只允许引用PI常量会有什么问题?该值是否未初始化且为零?
发布于 2015-02-28 01:33:39
‘允许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和所有嵌套类执行相同的操作,但不是它的成员。
发布于 2015-02-28 01:33:26
这
import java.lang.Math.*;导入在Math中声明的所有(可访问)类型。
这
import java.lang.Math;是多余的,因为Math是默认导入的java.lang的一部分。
两者都要求您使用
Math.PI来访问该字段。
这
import static java.lang.Math.PI;导入static成员Math.PI,以便可以在源代码中使用其简单名称。
https://stackoverflow.com/questions/28770927
复制相似问题