- 构建一个类, 类的名是你们自己的名字拼音。这个类在整个执行的运行周期里,最多只能创建出一个对象。 需要给出: - 类的设计,包含构造方法,给外部获取实例的方法等。 - main方法,在测试代码中给出构建多个对象的代码示例, 但是这些对象都是属于同一个对象。
时间: 2024-10-01 07:12:27 浏览: 29
为了实现这个名为"ZhangSan"的单例模式类,我们可以设计它如下:
```java
public class ZhangSan {
// 私有化构造函数,防止直接实例化对象
private ZhangSan() {}
// 公共静态变量,用于存储唯一实例
private static ZhangSan instance;
// 获取唯一实例的方法
public static ZhangSan getInstance() {
if (instance == null) {
synchronized (ZhangSan.class) { // 使用同步锁保证线程安全
if (instance == null) {
instance = new ZhangSan();
}
}
}
return instance;
}
// 在这里添加类的具体功能,如展示信息、计算等
public void showMessage() {
System.out.println("I am ZhangSan, the only one!");
}
public static void main(String[] args) {
// 测试代码,尝试创建多个张三对象
ZhangSan obj1 = ZhangSan.getInstance();
ZhangSan obj2 = ZhangSan.getInstance();
// 由于是单例模式,obj1和obj2实际上引用的是同一个对象
obj1.showMessage(); // 输出: I am ZhangSan, the only one!
obj2.showMessage(); // 输出同样内容
// 显示实例是否为同一个
System.out.println(obj1 == obj2); // 输出: true
}
}
```
在这个例子中,`ZhangSan`类只有一个私有构造函数,通过`getInstance()`方法提供获取唯一实例的方式,并使用了`synchronized`关键字保证线程安全。在`main`方法中,尽管我们创建了两个对象`obj1`和`obj2`,但实际上它们都指向同一个`ZhangSan`实例。这就是单例模式的核心思想。
阅读全文