为什么 java 中的 abs() 不起作用?

Why won't abs() in java work?

我一直有一个关于 java.lang.Math 的问题:(可能非常基础)

为什么我必须 Math.abs(-100) 而不能 abs(-100)

我认为 Math 是 class。而 abs 是一个静态方法。但为什么我不能简单地导入 java.lang.Math 并使用 abs(-100)

java.lang.Math 在每个 Java Class.

中静态导入
static import java.lang.Math;

java.lang 包的每个 class 都是这样导入的。

可以导入Math中的所有方法:

import static java.lang.Math.*;

或者只是您想要的一种方法:

import static java.lang.Math.abs;

普通导入只导入 classes,使 class 通过其短名称可用。

abs 是一个 static 方法,为了让编译器知道它的定义位置,您必须指定 class(在您的情况下 - Math)。

请注意,您可以在 Math.abs 上执行 static import,然后您就可以执行 abs(-100) 而不是 Math.abs(-100)。在这种情况下,您必须添加一个 import 语句,如下所示:

import static java.lang.Math.abs;

另请注意,与 JavaScript 和 PHP 不同,Java 中没有任何 public 函数 ,这就是 import 语句很重要的原因。

如您所知,java 中的所有内容都在 class 中。所以他们只能有两种选择。

Static Function and Non Static Function

java.lang.Math是一个实用程序库。创建这个对象对你来说不值得。所以 Java 伙计们在这个库中创建了所有静态函数。

对于您的问题,当且仅当它们是同一 class 的成员时,您可以直接调用成员函数。