1、定義:如果一個類只能創建一個實例,則這個類被稱爲單例類
2、如何創建 ???
(1)隱藏該類的構造器,即使用private修飾
(2)提供一個static修飾的類方法,用來給外界創造這一個實例
(3)保證只能創建一個實例(因此單例類中需要一個類變量來保存曾經創建的實例,以此來顯示該類是否創建過實例)
3、例子
class Single{
//使用一個類變量來保存曾經創建的實例
private static Single instance;
//使用private修飾該類的構造器
private Single() {}
//提供一個static修飾的方法,來創建該實例
public static Single getInstance() {
//如果沒有創建過實例,即instance=null,那麼此時可以創建實例
//如果已經創建過,即instance!=null,那麼此時不可以在重新創建
if(instance==null) {
instance=new Single(); //創建一個實例
}
return instance; //返回這個實例給外界
}
}
public class Test{
public static void main(String[] args) {
//創建這個單例類的實例,此時不能通過Single類的構造器來創建了,只能通過getInstance類方法獲得
Single s1=Single.getInstance();
Single s2=Single.getInstance();
System.out.println(s1==s2); //true,因爲Single類只能創建一個實例,因此無論在外界創建多少個Single的實例,它們都是同一個實例,都相等
}
}