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 + '\'' +
                '}';
    }
}
相关推荐
枫叶丹41 小时前
【Qt开发】Qt系统(一)-> 定时器 QTimerEvent 和 QTimer
c语言·开发语言·数据库·c++·qt·系统架构
鸽鸽程序猿1 小时前
【JavaEE】【SpringCloud】环境与工程搭建
java·spring cloud·java-ee
我居然是兔子7 小时前
异常练习:在试错中吃透Java异常处理的底层逻辑
java·开发语言
养一回月亮!8 小时前
使用Qt实现简单绘图板:鼠标绘制与擦除功能详解
开发语言·qt
BanyeBirth8 小时前
C++差分数组(二维)
开发语言·c++·算法
Tony Bai8 小时前
Go 的 AI 时代宣言:我们如何用“老”原则,解决“新”问题?
开发语言·人工智能·后端·golang
Fcy6488 小时前
C++ map和multimap的使用
开发语言·c++·stl
CC.GG8 小时前
【C++】STL容器----unordered_map和unordered_set的使用
java·数据库·c++
L Jiawen9 小时前
【Golang基础】基础知识(下)
服务器·开发语言·golang
Overt0p9 小时前
抽奖系统(4)
java·spring boot·tomcat