为什么 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 的成员时,您可以直接调用成员函数。
我一直有一个关于 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 的成员时,您可以直接调用成员函数。