java私有的构造函数_Java 私有构造函数的使用

被private修饰的私有构造函数无法在其他类中调用,也就是该类无法在其他类中实例化。

这种情况常用的使用场景:1、单例模式;  2、防止实例化。

一、单例模式

单例模式是一种常用的设计模式,思想是单例对象的类必须保证只有一个实例存在。

如何实现呢?一个简单的单例模式如下:

public class Singleton {

private static Singleton instance;

private Singleton() {

System.out.println("Singleton的私有构造器");

}

public static Singleton getInstance() {

if (instance == null)

instance = new Singleton();

return instance;

}

}

单例模式类的特点:

1.  一个private static的自身类型的属性,保证实例的唯一性;

2.  私有构造器,防止随意实例化;

3.一个public static的getInstance()得到唯一实例的方法;

当需要一个类实例时,用一下语句:

Singleton single=Singleton.getInstance();

二、防止实例化

某种情况下,我们只需要把某个类(工具类)当成“函数”使用,即只需要用到里面的static方法完成某些功能。

这种情况下不需要获得实例,所以getInstance()方法可有可无。

三、利用反射机制可以打破私有构造器的限制

利用反射机制,修改私有构造器的访问权限,也可以获得实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值