实验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