java中私有構造函數的作用


1. 強調類的單例模式

public class Elvs {
    //公有的靜態域,來說明該類只能有一個實例(實例化一次后,后面都是同一個實例)
    public static final Elvs INSTANCE=new Elvs();    
    private Elvs(){}//將構造函數定義為私有變量后,就不能在外部去調用構造函數實例化類了
    public void  sys() {
        System.out.println("******");
    }
}
public class Main {    
    public static void  main(String[] args){
        Elvs elvs=Elvs.INSTANCE;
        elvs.sys();
    }
}

注意上面的代碼中,在其他的外部類中去實例化Elvs時,只能通過靜態變量INSTANCE

public class Elvs {
    private static final Elvs INSTANCE = new Elvs();
    private Elvs() {}
    public static Elvs getInstance() {return INSTANCE;}
    public void sys() {
        System.out.println("******");
    }
}
public class Main {    
    public static void  main(String[] args){
        Elvs elvs=Elvs.getInstance();
        elvs.sys();
    }
}

根據靜態方法來獲取類的實例,也是只能獲取一個實例,實現單例模式

2. 通過類的私有構造函數來強調類的不可實例化

例如在實際的應用中,工具類,或者整個工程的常量類,在類中只有靜態常量,

這時我們可以在類中去定義一個私有的構造函數,然后在類中不去調用它,這樣

在其他的類處就不能實例化這個常量類了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM