加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 05:01:15 所属栏目:Java 来源:网络整理
导读:我是编程新手并且正在学习“Head First Java”,我刚看到一个问题,就是像这样使用了Math类 int x= Math.round(float value); 并且提到我们不需要实例化Math类,因为它的构造函数是私有的.那是什么意思?到目前为止,我读到我们需要实例化该类和引用变量来使用类
我是编程新手并且正在学习“Head First Java”,我刚看到一个问题,就是像这样使用了Math类

int x= Math.round(float value);

并且提到我们不需要实例化Math类,因为它的构造函数是私有的.那是什么意思?到目前为止,我读到我们需要实例化该类和引用变量来使用类的方法和实例变量,Math类如何工作?

解决方法

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

因为Math类中的所有方法都是静态的,所以可以使用类名来调用它们.因此没有用于实例化类,因此构造函数被声明为私有.它还会阻止对Math类进行子类化,因为它是唯一的构造函数.

看看open source code:

Don’t let anyone instantiate this class.

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

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

你可以参考JLS 8.4.3.2:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读