[英]Is System class singleton, abstract or what?
像LocalDate
這樣的 class 是不可變的,它有一個私有構造函數,每次我們想要一個 object 時,我們都必須調用它的 ZA81259CEF8E959C624DF1D456E5D, LocalDate.now()
或LocalDate.of(year, month, day)
方法。 這些方法使用new
關鍵字並調用該私有構造函數,因此每次都會創建一個“新引用”。 它不是 singleton class 因為我們可以同時擁有多個對象。
但是System
class 呢? 它看起來像LocalDate
,它有一個私有構造函數,但它沒有 static 方法來調用它。 這個 class 也不是抽象的,那為什么 java 程序員寫System
class 就像沒有人可以制作 ZA8CFDE6331BD59EB2666ZFC 一樣? 它背后的設計模式是什么? 哪些類是這樣的?
它有一個從不調用的私有構造函數,因此永遠不會有任何實例(單例需要一個)。
/** Don't let anyone instantiate this class */
private System() {
}
它不是抽象的
public final class System {
System
更像是一個命名空間。 它只是一堆 static 方法和常量的容器。
Java 不允許您將方法放在 class 之外,因此有時結果是像這樣完全沒有實例化的“類”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.