通常來說,構造方法私有化以後,是沒法在外部產生新的實例的,spa
可是下面這種方法能夠解決這個問題code
class Singleton{ private static Singleton instance = new Singleton() ; // 在內部產生本類的實例化對象 public static Singleton getInstance(){ // 經過靜態方法取得instance對象 return instance ; } private Singleton(){ // 將構造方法進行了封裝,私有化 } public void print(){ System.out.println("Hello World!!!") ; } }; public class SingletonDemo05{ public static void main(String args[]){ Singleton s1 = null ; // 聲明對象 Singleton s2 = null ; // 聲明對象 Singleton s3 = null ; // 聲明對象 s1 = Singleton.getInstance() ; // 取得實例化對象 s2 = Singleton.getInstance() ; // 取得實例化對象 s3 = Singleton.getInstance() ; // 取得實例化對象 s1.print() ; // 調用方法 s2.print() ; // 調用方法 s3.print() ; // 調用方法 } };
這樣作的好處是,無論實例化多少個對象,都是一個實例的引用,也就是instance對象
不會產生多個對象。blog