用这个类时候,不能直接去创建类的对象(构造函数是private),要调用这个类的某个方法
package Yan;
public class SingleClass {
private static SingleClass singleClass;
private SingleClass() {
}
public static SingleClass getInstance() {
singleClass = new SingleClass();
return singleClass;
}
}
调用方法:SingleClass sc = SingleClass.getInstance();
注意:
(1)构造函数是私有的
(2)创建一个实例
(3)实例(singleClass)和返回实例的方法(getInstance())都是静态的
特点:
(1)单例类只能有一个实例。
(2)单例类必须自己创建自己的唯一实例。
(3)单例类必须给所有其他对象提供这一实例。
好处:
1、控制资源的使用,通过线程同步来控制资源的并发访问;
2、控制实例产生的数量,达到节约资源的目的。
3、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
例子:
Calendar cd = Calendar.getInstance();