前言
是什麼非例項化:不用例項化的類。(例項化沒有任何意義,此時這個類我們希望它是非例項化的)
**用編寫乙個工具類的時候。對於工具類,例項化對它們來說是沒有任何意義的,然而乙個類我們都知道,在沒有宣告構造方法的時候,編譯器會預設提供乙個公共的、無參的構造器。
怎麼實現
/**
* 不用例項化的工具類
* * @author gongguowei
* @email [email protected]
* @date 2020/1/11
*/public
class
utilityclass
}
可以看到,我們自己宣告了乙個構造器(顯式構造器),編譯器不會預設乙個無參的構造器,顯式構造器是私有的,所以不可以在類的外部訪問它。
總結使用私有構造器執行非例項化,其實主要用在工具類,不用例項化,工具類就可以向呼叫者提供服務。例項化的過程其實本質是向記憶體中申請乙個空間,我們對於不用例項化的類,避免它使用編譯器預設的例項方法,這樣節約了記憶體,也避免了非例項化類的預設建構函式不穩定性。不過這種寫法,也有一種缺點,讓呼叫者檢視時,會感覺構造器就是設計成不能呼叫的一樣,因此新增一句注釋,會是一種明智的選擇。
04 使用私有構造器執行非例項化
前言 是什麼 非例項化 不用例項化的類。例項化沒有任何意義,此時這個類我們希望它是非例項化的 用 編寫乙個工具類的時候。對於工具類,例項化對它們來說是沒有任何意義的,然而乙個類我們都知道,在沒有宣告構造方法的時候,編譯器會預設提供乙個公共的 無參的構造器。怎麼實現 不用例項化的工具類 author ...
通過私有構造器強化不可例項化的能力
有時候,我們需要建立一些工具類,只包含靜態方法和靜態域,不希望被例項化,因為例項對它沒有任何的意義。有一種情況,我們可以將類做成抽象類來強制該類不可被例項化,但這是行不通的,因為該類可以被子類化,並且子類可以例項化。在缺少顯示構造器的情況下,編譯器會自動提供乙個公有的,無參的預設構造器,由於當子類不...
通過私有構造器強化不可例項化的能力
你可能需要編寫只包含靜態方法和靜態域的類。這樣的工具類不希望被例項化,例項化對他沒有任何意義。企圖通過將類做成抽象類來強制該類不可被例項化,這是行不通的 工具類 util 就是一類不該被例項化類的代表。它們只是提供一些實用功能,例項化之是毫無意義的。demo noninstantiable util...