为什么在java工作中赢得了abs()?

时间:2015-09-01 13:12:41

标签: java syntax

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

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

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

4 个答案:

答案 0 :(得分:7)

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

import static java.lang.Math.*;

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

import static java.lang.Math.abs;

正常导入只导入,通过其短名称使该类可用。

答案 1 :(得分:3)

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

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

import static java.lang.Math.abs;

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

答案 2 :(得分:1)

java.lang.Math在每个Java类中静态导入。

static import java.lang.Math;

java.lang包的每个类都以这种方式导入。

答案 3 :(得分:0)

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

  

静态功能和   非静态功能

java.lang.Math是一个实用程序库。创建这个对象不值得。所以Java人员在这个库中创建了静态的所有函数。

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