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 + '\'' +
                '}';
    }
}
相关推荐
南宫生7 分钟前
力扣-图论-70【算法学习day.70】
java·学习·算法·leetcode·图论
zfj3217 分钟前
java日志框架:slf4j、jul(java.util.logging)、 log4j、 logback
java·log4j·logback·java日志框架·slf4j·jul
程序猿阿伟15 分钟前
《探索 Apache Spark MLlib 与 Java 结合的卓越之道》
java·spark-ml·apache
一條狗20 分钟前
隨筆 20241224 ts寫入excel表
开发语言·前端·typescript
向阳121823 分钟前
sentinel来源访问控制(黑白名单)
java·sentinel
Takumilove24 分钟前
MQTT入门:在Spring Boot中建立连接及测试
java·spring boot·后端
yayaya15233 分钟前
javaScriptBOM
开发语言·javascript·ecmascript
潜洋36 分钟前
Spring Boot 教程之三十六:实现身份验证
java·数据库·spring boot
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭40 分钟前
C#都可以找哪些工作?
开发语言·c#
TroubleMaker1 小时前
OkHttp源码学习之retryOnConnectionFailure属性
android·java·okhttp