JAVA中的单例模式->饿汉式

一、步骤

1.构造器私有化=>防止直接new

java 复制代码
// 步骤一、构造器私有化=>防止直接new
private GirlFriend(String name){
   System.out.println("构造器被调用");
   this.name = name;
}

2.类的内部创建对象

java 复制代码
// 步骤二、类的内部创建对象(该对象是static)
private static GirlFriend girlFriend = new GirlFriend("鞠婧祎");

3.向外暴露一个静态的公共方法。getInstance

java 复制代码
// 步骤三、向外暴露一个静态的公共方法。getInstance
    public static GirlFriend getInstance(){
        return girlFriend;
    }

二、代码实现

java 复制代码
package SingleModel;
public class SingleModel01 {
    public static void main(String[] args) {
        // 通过方法可以获取对象
        GirlFriend girlFriend = GirlFriend.getInstance();
        System.out.println(girlFriend);
        GirlFriend girlFriend2 = GirlFriend.getInstance();
        System.out.println(girlFriend2);
        System.out.println(girlFriend == girlFriend2);
    }
}
class GirlFriend{
    private String name;

    // 步骤一、构造器私有化=>防止直接new
    private GirlFriend(String name){
        System.out.println("构造器被调用");
        this.name = name;
    }

    // 步骤二、类的内部创建对象(该对象是static)
    private static GirlFriend girlFriend = new GirlFriend("鞠婧祎");

    // 步骤三、向外暴露一个静态的公共方法。getInstance
    public static GirlFriend getInstance(){
        return girlFriend;
    }

    @Override
    public String toString() {
        return "GirlFriend{" +
                "name='" + name + '\'' +
                '}';
    }
}
相关推荐
Haven-1 小时前
Java-面试八股文-JVM篇
java·jvm·面试
我真的是大笨蛋1 小时前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
wjs0401 小时前
Git常用的命令
java·git·gitlab
superlls2 小时前
(算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
java·数据结构·算法
honder试试2 小时前
焊接自动化测试平台图像处理分析-模型训练推理
开发语言·python
^Rocky2 小时前
JavaScript性能优化实战
开发语言·javascript·性能优化
田里的水稻2 小时前
C++_队列编码实例,从末端添加对象,同时把头部的对象剔除掉,中的队列长度为设置长度NUM_OBJ
java·c++·算法
ponnylv2 小时前
深入剖析Spring Boot启动流程
java·开发语言·spring boot·spring
萧邀人2 小时前
第一课、Cocos Creator 3.8 安装与配置
开发语言
前行的小黑炭3 小时前
Android 协程的使用:结合一个环境噪音检查功能的例子来玩玩
android·java·kotlin