public class SingleTon01 {
public static void main(String[] args) {
System.out.println(Cat.n1);
//这里我们使用cat类的静态属性 不会创建cat对象 也不会进入到构造器
//我们需要去访问getInstance 才能创建cat对象 因为构造器被私有化了 不能直接new
Cat cat=Cat.getInstance();
System.out.println(cat);
Cat cat1=Cat.getInstance();
System.out.println(cat1);
//cat对象 不会创建两次 构造器也不会调用两次
System.out.println(cat==cat1);//true
}
}
/**
* 单例模式-懒汉式
*/
//希望在程序的运行中只创建一个 cat对象
//使用单例模式
class Cat {
//名字
private String name;
public static int n1=100;
private static Cat cat;
//第一步把构造器私有化
//定义一个static静态属性对象
//如何调用呢 我们提供一个public的静态方法 可以返回一个cat对象
//懒汉式只有当用户调用getInstance才返回一个cat对象 后面再次调用时 会返回上次创建的cat对象
//从而保证了单例
private Cat(String name){
this.name=name;
System.out.println("Cat(String name) 构造器被调用。。。");
}
public static Cat getInstance(){
if(cat==null){
cat=new Cat("大橘");
}
return cat;
}
}
单例模式—懒汉式
最新推荐文章于 2024-02-05 12:35:28 发布