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

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

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

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

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

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

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

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

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

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

注:本文來自51CTO.COM


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巫溪县| 城市| 松原市| 莫力| 多伦县| 伊川县| 潞城市| 铁岭县| 尉氏县| 修武县| 盈江县| 资源县| 黄骅市| 玉林市| 繁峙县| 辉县市| 旬阳县| 城步| 裕民县| 观塘区| 晴隆县| 横山县| 江油市| 威海市| 土默特左旗| 玉田县| 都安| 文登市| 石棉县| 青龙| 百色市| 富川| 平度市| 唐山市| 石嘴山市| 朝阳县| 赞皇县| 天门市| 德阳市| 乳源| 左云县|