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. 通過類的私有構造函數來強調類的不可實例化
例如在實際的應用中,工具類,或者整個工程的常量類,在類中只有靜態常量,
這時我們可以在類中去定義一個私有的構造函數,然后在類中不去調用它,這樣
在其他的類處就不能實例化這個常量類了。