java 类不能被实例化_如何让一个类不能被实例化

本文介绍了在Java中如何使一个类不能被实例化,主要方法包括使用私有构造器以及在构造器中抛出异常。这种设计常用于工具类,如Math类。同时,文章讨论了为什么单纯私有构造器仍可能通过反射被实例化,以及防止这种情况的策略。
摘要由CSDN通过智能技术生成

本文涉及的概念:

1.在面向对象编程中,在什么场景下会需要做到让一个类不能被实例化

2.让一个类不能被实例化的方法

什么样的场景会需要让一个类不能被实例化

工具类(utility class),实例化对它们没有意义的工具类。这时候,就要做到不让该类被实例化

java.lang.Math:

把与Math相关的基本类型的值和相关的方法组合到该Math类中。Math类不需要实例化,使用了私有构造器。不过,它可以在Math类中内部被实例化。

使用私有构造器,没有子类;使用final修饰,没有子类。

packagejava.lang;importjava.util.Random;public final classMath {/*** Don't let anyone instantiate this class.*/

privateMath() {}/*** The {@codedouble} value that is closer than any other to

* e, the base of the natural logarithms.*/

public static final double E = 2.7182818284590452354;public static final double PI = 3.14159265358979323846;public static double sin(doublea) {return StrictMath.sin(a); //default impl. delegates to StrictMath

}

....public static double toRadians(doubleangdeg) {return angdeg / 180.0 *PI;

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值