Java的單例類

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的實例,它們都是同一個實例,都相等
	}
}                
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章