首页 > 其他分享 >软件设计--实验七

软件设计--实验七

时间:2024-10-30 09:10:55浏览次数:4  
标签:StuNo String instance -- System 软件设计 实验 println out

实验7:单例模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解单例模式的动机,掌握该模式的结构;

2、能够利用单列模式解决实际问题。 

[实验任务一]:学号的单一

仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。

 

类图:

```mermaid
classDiagram
    Client ..> StuNo : uses
    StuNo --> "1" StuNo : instance
    
    class StuNo {
        -instance: StuNo
        -no: String
        -StuNo()
        +getInstance(): StuNo
        -setStuNo(no: String): void
        +getStuNo(): String
    }
    
    class Client {
        +main(args: String[]): void
    }
```

源码:

package Tutorial07;

public class StuNo {

    private static StuNo instance = null;
    private String no;

    private StuNo(){}


    public static StuNo getInstance(){

        if(instance == null){
            System.out.println("第一次办理学生证,分配新号码!");
            instance = new StuNo();
            instance.setStuNo("20223929");
        }
        else{
            System.out.println("重复办理旧学生证,获取旧号码!");
        }
        return instance;
    }

    private void setStuNo(String no){
        this.no = no;
    }

    public  String getStuNo(){
        return this.no;
    }

}
package Tutorial07;

public class Client {

    public static void main(String[] args) {
        StuNo no1,no2;
        no1 = StuNo.getInstance();
        no2 = StuNo.getInstance();
        System.out.println("学生证号码是否一致"+(no1==no2));


        String str1,str2;
        str1 = no1.getStuNo();
        str2 = no2.getStuNo();
        System.out.println("第一次号码:"+str1);
        System.out.println("第二次号码:"+str2);
        System.out.println("内容是否相等:"+str1.equalsIgnoreCase(str2));
        System.out.println("是否是相同对象:"+(str1 == str2));
    }
}

结果如下:

第一次办理学生证,分配新号码!
重复办理旧学生证,获取旧号码!
学生证号码是否一致true
第一次号码:20223929
第二次号码:20223929
内容是否相等:true
是否是相同对象:true

 

标签:StuNo,String,instance,--,System,软件设计,实验,println,out
From: https://www.cnblogs.com/muzhaodi/p/18514966

相关文章

  • supervision ByteTrack类 Day(5)
    ByteTrack类ByteTrack是一个用于目标跟踪的高效工具,能够根据检测结果更新其内部状态,并能处理多种参数以优化跟踪表现。其提供的重置和更新方法使其能够灵活应对不同视频的处理需求。ByteTrack初始化参数track_activation_threshold(float)描述:用于激活跟踪的检测置信......
  • 9万9的人形机器人可以买吗?
    相关:9万9的人形机器人替你们看了!差点冲动下单!真实水平是怎样的?一个两三万的三折叠的手机都这么多人买,那么一个9.9W的人形机器人买回去玩玩又有什么不可呢!强化学习算法library库:(集成库)https://github.com/Denys88/rl_gameshttps://github.com/Domattee/gymTouch个人git......
  • 魔兽争霸和星际争霸这两款游戏到底哪个难度更大
    开篇先说一下结论,那就是这个问题没有固定的答案,这就如同一万个人读《哈姆雷特》就会有一万个哈姆雷特一样,说白了这就是一个见仁见智的事情,不过对于我这种有着快20多年的魔兽争霸和星际争霸游戏经验的来说还是应该说一下自己的一些观点的。这里也不给出个人的结论,而是只说一下个......
  • 实验6:原型模式(向量的原型)
    [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 1.类图   2. 源代码(1) 浅克隆代码和运行结果#include<bits/stdc++.h>usingnamespacestd;classVector......
  • Data-Free,多目标域适应合并方案,简单又有效 | ECCV'24
    来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Training-FreeModelMergingforMulti-targetDomainAdaptation论文地址:https://arxiv.org/abs/2407.13771论文代码:https://air-discover.github.io/ModelMerging创新点对域适应的场景解析模型中的模式连通性进......
  • 实验7:单例模式(学号的单一 )
    [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。1. 类图 1. 源代码//StudentID.javapackagetest7; publicclassStudentID{    privatestaticStudentIDinstance=null;    privateStringid;     privat......
  • PbootCMS上传文件大小限制
    修改 php.ini 文件打开 php.ini 文件。修改以下参数:file_uploads=onupload_tmp_dir=/tmpupload_max_filesize=32Mpost_max_size=32Mmax_execution_time=600max_input_time=600memory_limit=32M重启PHP服务使用命令重启PHP服务:se......
  • 在Windows环境下使用AMD显卡运行Stable Diffusion
    现在用的电脑是21年配的,当时并没有AI相关的需求,各种各样的原因吧,抉择后选择了AMD的显卡,但在2024年的今天,使用AI进行一些工作已不再是什么罕见的需求,所以我也想尝试一下,但发现AMD显卡却处处碰壁,研究后发现,经过各方面的努力,AMD显卡在AI方面的支持已经有了很大的进步,......
  • pbootcms网站搬家到新服务器后 前台显示数据不完全
    在将PBootCMS网站从一个服务器迁移到另一个服务器后,如果前台显示的数据不完全,而后台显示正常,通常需要检查以下几个方面。根据您的描述,最终发现问题出在服务器时间上。以下是详细的排查和解决步骤:1.检查服务器时间登录新服务器:使用SSH或其他方式登录到新服务器。检......
  • [错误代码] SQLSTATE[HY000] [1045] Access denied for user 'cs2021'@'localhost' (u
    错误分析错误代码:SQLSTATE[HY000][1045]Accessdeniedforuser'cs2021'@'localhost'(usingpassword:YES)错误类型:数据库连接错误错误原因:用户名或密码错误。数据库用户没有权限从 localhost 连接。MySQL服务未启动或配置问题。解决方案检查用户名和密码......