建構函式私有化的目的與用法

2021-06-21 08:29:40 字數 768 閱讀 6072

構造方法私有化,也就是說,這個類的構造方法是私有的。比如:

public class person

}

我們不能在外部例項化這個person物件的類!比如:

public class testperson

}

如果我們想在person類的外部使用person類的物件,只能在person類的內部例項化乙個person類的物件,然後呼叫這個物件,而不能再外部例項化新的物件。

public class person

public person getinstance()

}

外部的person類的所有物件只能是對person內部newperson物件的引用。

外部一千一萬個物件也都只能是對person內部newperson物件的引用。

因為外部定義的person類物件沒有例項化能力。這就是單例設計模式,從頭至尾只有乙個物件的例項(單例)。

單例有兩種使用模式:

1餓漢式

class singleton 

static singleton getinstance()

}

2懶漢式

class singleton 

static singleton getinstance()

}

私有化建構函式的作用

例如 public class diskutil public static func 這樣的類,往往提供一些靜態的函式來生成該類的例項,只要這個類有公開的屬性 方法,得到例項引用的一方還是可以呼叫的,乙個例子是singleton。外面呼叫只能呼叫diskutil 的靜態函式func,而不能a a ...

構造方法私有化

本章目標 了解構造方法私有化的目的 掌握單態設計模式 構造方法私有化 類的封裝性不光體現在對屬性的封裝上,實際上方法也是可以被封裝的,當然,在方法封裝中也包含了對構造方法的封裝。例如 以下的 就是對構造方法進行了封裝。class singleton public void print 程式的意義 單...

構造方法私有化與單例模式

單例模式 乙個類只有乙個例項化的物件,單例模式實現的核心是構造方法私有化,這樣就不能在類的外部建立該類的例項化物件,要想在類的外部使用構造方法私有化的類物件,只能在類的內部例項化乙個類物件,然後通過靜態方法返回該例項物件的引用,在外部進行呼叫。例如 建立乙個構造方法私有化的person類 publi...