用這個類時候,不能直接去創建類的對象(構造函數是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();