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 + '\'' +
                '}';
    }
}
相关推荐
步行cgn3 分钟前
函数式编程思想详解
java·开发语言·windows
徐子宸4 分钟前
Docker面试题(1)
java·docker·容器
大坏波17 分钟前
C/C++内存管理
java·c语言·c++
南瓜胖胖27 分钟前
R语言科研编程-标准偏差柱状图
开发语言·r语言
编码小笨猪40 分钟前
[ Qt ] | 常见控件(一): enable、geometry
开发语言·qt
轮到我狗叫了44 分钟前
力扣.H指数力扣.字母异位词力扣.289生命游戏力扣452.用最小数量的箭引爆气球力扣.86分隔链表力扣.轮转数组
java·数据结构·算法
Eiceblue1 小时前
通过Python 在Excel工作表中轻松插入行、列
开发语言·vscode·python·pycharm·excel
无影无踪的青蛙1 小时前
[C++]洛谷B3626 跳跃机器人(题干 + 详细讲解, BFS练习题)
开发语言·c++·算法·bfs·广度优先
zeijiershuai1 小时前
SpringBoot项目配置文件、yml配置文件
java·spring boot·yml
江畔柳前堤1 小时前
PyQt学习系列11-综合项目:多语言文件管理器
开发语言·网络·python·学习·django·pyqt