Java学习之单例类

单例类:如果一个类只创建一个实例,就被叫做单例类。

使用范围:当这个类创建太多实例没有太大意义的时候就可以使用,大部分时候类的构造器定义为public访问权限,在这里我们应private来修饰构造器,从而把该类的构造器藏起来。但是还得进行该类的创建对象的过程,就得提供一个public方法作为该类的访问点,用于创建,且该方法必须使用static修饰(因为该类调用之前还没有对象产生,因此使用该方法的不可能是对象,只能是类)

初次之外,该类还必须缓存已经创建的对象,否则无法判断是否已经创建了对象,也无法保证只创建一个对象。我们用一个成员变量来保存曾经创建的对象,因为该成员变量需要被上面的静态方法访问,所以必须用static来修饰

代码展示

import javax.xml.crypto.dsig.SignedInfo;

public class Singleton {
    private static Singleton instance;
    private Singleton(){};
    //静态方法才能访问静态变量
    public static Singleton getInstance(){
        if(instance==null){
            instance=new Singleton();
        }
        return  instance;
    }

    public static void main(String[] args) {
        Singleton s1=Singleton.getInstance();
        Singleton s2=Singleton.getInstance();
        System.out.println(s1==s2);
    }
}

解释:最后输出是true,因为只有一个对象产生,所以s1和s2指向同一块内存区,所以输出是true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值