Java 私有构造函数的使用

本文介绍了如何使用私有构造函数实现单例模式,确保类只有一个实例,并探讨了私有构造函数在防止实例化方面的应用。同时,还提到了通过反射机制突破私有构造函数限制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

被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()方法可有可无。

 

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

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

 

转载于:https://www.cnblogs.com/bigbigbigo/p/7596400.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值