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 + '\'' +
                '}';
    }
}
相关推荐
我不是懒洋洋4 分钟前
大语言模型(LLM)入门:从Transformer到ChatGPT
c语言·开发语言·c++
MY_TEUCK5 分钟前
【Java 后端 | 微服务远程调用实战】Nacos + OpenFeign 从入门到公共模块抽取
java·开发语言·微服务
love_muming14 分钟前
Java编程核心技巧全解析
java·开发语言·idea
爱编程的小新☆15 分钟前
Spring-AI入门
java·后端·spring
wjm04100620 分钟前
简单谈谈ios开发中的UI
开发语言·ios·swift
用户2986985301421 分钟前
Java 获取 Word 文档中修订记录的实现方法
java·后端
Dicky-_-zhang21 分钟前
Redis集群模式详解与实战配置
java·jvm
你的保护色22 分钟前
ensp之STP、RSTP、MSTP协议实验
java·服务器·数据库
slandarer24 分钟前
MATLAB | 土地利用变化桑基图及状态转移桑基图绘制
开发语言·数学建模·matlab·桑基图
L_090734 分钟前
【C++】面向对象三大特性之多态
开发语言·c++