将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 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常数的引用.

我的问题是:导入语句仅允许引用PI常数会有什么问题?该值会非初始化并且零吗?

推荐答案

'允许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和所有嵌套类都这样做,但不是成员.

其他推荐答案

这个

import java.lang.Math.*;

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

这个

import java.lang.Math;

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

两者都需要您使用

Math.PI

访问字段.

这个

import static java.lang.Math.PI;

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

本文地址:https://www.itbaoku.cn/post/902508.html