老王學java之構造方法私有化

通常來說,構造方法私有化以後,是沒法在外部產生新的實例的,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

相關文章
相關標籤/搜索