国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#基礎(五)——類中私有構造函數作用

2019-11-17 02:56:51
字體:
來源:轉載
供稿:網友

C#基礎(五)——類中私有構造函數作用

如果類成員有PRivate修飾符,就不允許在類范圍以外訪問這個類成員。對類構造函數應用private修飾符時,則禁止外部類創建該類的實例。盡管看上去有些不好理解(既然不能實例化,那么這個類還有什么用處?),但實際上這是一個功能極其強大的特性。

最明顯的是,如果類只通過靜態方法和字段來提供功能,那么就常常使用私有構造函數。框架類庫FCL中System.Math類就是一個很經典的例子。

System.Math類有兩個靜態字段:pi和e(自然對數底數),還有一些返回三角函數值的方法。這些方法都作為內置函數,所以,程序沒有必要為使用這些字段和方法而創建Math類的實例。

現在可能會很自然地出現這樣一個問題:要避免實例化,使用私有構造函數好呢,還是使用抽象類更好一些?答案在于要理解這二者的區別。首先來考慮繼承,雖然抽象類不能實例化,但其真正的目的是用于作為基類,以便派生類(可實例化)創建自己的實現。使用私有構造函數的類不會被繼承,而且也不能被繼承。其次,私有構造函數只能禁止外部類對該類進行實例化,卻不能禁止在該類內部創建實例。

私有構造函數的特性也可以用于管理對象的創建。雖然私有構造函數不允許外部方法實例化這個類,但卻允許此類中的公共方法(有時也稱為工廠方法,factory method)創建對象。也就是說,類可以創建自身的實例、控制外界對它的訪問,以及控制創建的實例個數

注:本文來自51CTO.COM


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武安市| 南靖县| 汉寿县| 克山县| 凌云县| 全州县| 安徽省| 桃园县| 比如县| 右玉县| 平阴县| 左云县| 包头市| 明水县| 永和县| 安阳县| 浦城县| 专栏| 中方县| 嘉鱼县| 庄河市| 大港区| 阿坝县| 平顺县| 侯马市| 广丰县| 湘潭市| 合肥市| 宁夏| 彩票| 吉隆县| 衡东县| 公主岭市| 报价| 仁化县| 临沂市| 安宁市| 玉门市| 南投市| 盘山县| 萨嘎县|