天天看點

通過私有構造器強化不可執行個體化的能力

有時候,你可能需要編寫值包含靜态方法和靜态域的類,這些來名聲不好,因為有些人紮面向對象的語言中濫用這樣的類來編寫過程化的程式,盡管如此,它們也确實有它們特别的用處,我們可以利用這種類以,java.lang.Math或者java.util.Arrays的方式,把基本類型和素質類型上的相關方法組織起來,我們也可以通過java.util.collections的方式,把實作特定接口對象上的靜态方法組織起來,以取代擴充該類的方法.

由于隻有當類不包含顯式的構造器時,編譯器才會生成預設的構造器,是以我們隻要讓這個類不包含顯式的構造器他就不能執行個體化了

public class UtiltyClass{
    private UtiltyClass(){};
}
    這種習慣用法也有副作用,踏實的一個類不能被子類化,所有的構造器都必須顯式或飲食地調用超類的構造器,在這種情形下,子類就沒有可通路超類的構造器可調用了.
           

繼續閱讀