首页 > 编程语言 >单例模式--Java实现

单例模式--Java实现

时间:2023-10-15 21:35:48浏览次数:24  
标签:Java instance -- System StudentNo 单例 println public out

画类图

具体代码实现

//StudentNo.java
package org.example.design005;

public class StudentNo {
    private static StudentNo instance=null;

    private StudentNo(){}
    public static StudentNo getInstance() {
        if(instance==null){
            System.out.println("第一次注册,分配新的学号");
            instance=new StudentNo();
            instance.setNo("20214063");
        }else{
            System.out.println("重复获取,获取旧的学号");
        }
        return instance;
    }

    public static void setInstance(StudentNo instance) {
        StudentNo.instance = instance;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    private String no;
}


//Main.java
package org.example.design005;

public class Main {
    public static void main(String[] args) {
        StudentNo x,y;
        x=StudentNo.getInstance();
        y=StudentNo.getInstance();

        System.out.println("查看学号是否一致:"+(x==y));

        String a,b;
        a=StudentNo.getInstance().getNo();
        b=StudentNo.getInstance().getNo();

        System.out.println("第一次的学号:"+a);
        System.out.println("第二次的学号:"+b);

        System.out.println("内容是否一致:"+(a.equals(b)));
        System.out.println("对象是否相同:"+(a==b));

    }
}

标签:Java,instance,--,System,StudentNo,单例,println,public,out
From: https://www.cnblogs.com/liuzijin/p/17765887.html

相关文章

  • 136. 只出现一次的数字
    1.题目简介2.题解本题思路参考了某位大大的题解,链接:https://leetcode.cn/problems/single-number/solutions/5118/xue-suan-fa-jie-guo-xiang-dui-yu-guo-cheng-bu-na-y/2.1数组/哈希表解法思路这里很容易想法就是成对存储:数(键)和数出现的次数(键值),所以使用数组和哈希表存储......
  • 金蝶云星空调用《其他入库单》的新增界面给序列号子单据体数据赋值
     金蝶云星空调用《其他入库单》的新增界面给序列号子单据体数据赋值 金蝶云星空平台,业务对象的实体层级关系,表头,表头下可以有多个单据体,各单据体之间无关联,单据体下可以有子单单据体。另外各个实体都可以设置拆分表。比如,《其他入库单》表头有客户、日期、单据编号等,有拆分表......
  • 每日总结
    今日收获学科竞赛部纳个新,都好优秀啊~完成了软考中的UML相关内容试题;复习了部分的设计模式;背了单词;明天预计上课啦~~继续纳新去~继续学习UML;背单词,做六级习题;......
  • cygwin works with vs code
    Incasesomeonestumblesonthisthread.ThereisabuginCygwin'sgdb(v11.x-v12.x)thatpreventsVSCodefromstoppingatbreakpoints.Atthemomentrollingbackgdbtov9.xseemstosolvetheissue.Currently,thegcc/g++versionisgcc(GCC)1......
  • BASE64编码
    Base64编码可以解决以下问题:1.传输二进制数据:在网络传输中,只能传输ASCII字符,无法直接传输二进制数据。使用Base64编码可以将二进制数据转换成ASCII字符,从而可以在网络上传输。2.嵌入二进制数据:在文本协议中,无法直接嵌入二进制数据。使用Base64编码可以将二进制数据转换成ASCII字......
  • 软考--软件工程
    一、能力成熟的模型(CMM) 二、能力成熟的模型集成(CMMI)CMMI提供了两种表示方式:阶段式模型和连续式模型。1、阶段式模型(考得少) 2、连续式模型(考得多)三、软件过程模型软件过程模型也称软件开发模型;典型的软件过程模型有瀑布模型、......
  • 万户OA域控集成企业微信-删除离职用户
    OA与域控集成后,在域控中禁用/删除用户后,OA同步禁用,但是对接的企业微信并未删除用户。Quartz计划任务classDeleteWeiXinUserJob:IJob{publicstaticstringcorpid=ConfigurationManager.AppSettings["corpid"];publicstaticstringsecrect=Configu......
  • 世界纷纷扰扰,总有人在准备校招
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!这段时间相信大家不管是各种资格考试还是准备考公考研,都是忙忙碌碌。当然,也有不少同学在为校招而努力。01校招持续时间长校园招聘是许多大学生毕业后进入职场的重要途径之一。......
  • QT基础教程(GUI程序原理分析)
    (文章目录)前言本篇文章正式带大家开始学习QT基础部分的内容,后面将更新一套完整的QT教程,包括QT基础,QT进阶,QT项目,QT企业级项目等系列教程,希望大家多多点赞支持。资料合集地微信公众号:优质程序猿一、命令行应用程序的特点命令行应用程序是一种在命令行界面中执行的应用程序。......
  • 无涯教程-NumPy - 算术运算
    用于执行算术运算(如add(),subtract(),multipli()和divide())的输入数组必须具有相同的维度或符合数组broadcasting规则。importnumpyasnpa=np.arange(9,dtype=np.float_).reshape(3,3)print'Firstarray:'printaprint'\n'print'Secondarray:'b=......