gpt4 book ai didi

java - 使用 Math 类而不实例化它

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:07 25 4
gpt4 key购买 nike

我是编程新手,正在学习“Head First Java”,我刚刚看到一个问题,其中使用了这样的Math

int x= Math.round(float value);

有人提到我们不需要实例化 Math 类,因为它的构造函数设置为 private。这意味着什么?直到现在我读到我们需要实例化那个类和引用变量来玩弄类的方法和实例变量 Math 类是如何工作的?

最佳答案

we don't need to instantiate Math class because its Constructor is set Private

因为 Math 类中的所有方法都是 static ,所以您可以使用类名来调用它们。所以实例化类是没有用的,因此构造函数被声明为private。它还会阻止 Math 类的子类化,因为它是唯一 构造函数。

查看open source code :

Don't let anyone instantiate this class.

 private Math() {} // only constructor defined in Math class

Math 类的方法不依赖于类的内部状态,它们就像实用函数一样。所以将它们声明为 static 是明智的。 static 方法可以通过直接使用类名来调用,因此不需要实例化类。它们属于该类,而不是该类的特定对象。

可以引用JLS 8.4.3.2 :

A class method is always invoked without reference to a particular object.

关于java - 使用 Math 类而不实例化它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com