C 類屬性封裝 欄位的詳解

2021-09-02 12:09:14 字數 971 閱讀 7234

今日敲**時,突然感覺對類的屬性封裝、字段有點犯迷糊了。。連基礎的都不知道了,那敲的**怎麼能嚴謹高效的。果斷拿起各種高階程式設計、大全啥的翻起來~~這不再把自己的理解寫下來(定義都是直接抄書的),獻給同樣迷糊的小夥伴。

先說下類的成員,它分為資料成員和函式成員。資料成員,簡單點可以理解成類的資料,包含了字段、常量(const)、事件;函式成員,就是操作類中的資料,包含方法、屬性、建構函式、終結器(析構函式)、運算子、索引器。(就提一下,方便後面說下去,要都解釋就偏題了)字段就是類裡定義的變數,而屬性則是字段的拓展。所以在使用屬性前要結合乙個正常的字段宣告,這個字段稱為屬性的後備字段(backing field):

private int numberofcows; 

public int numberofcows

set}

讀取numberofcows欄位時會執行get方法,返回私有欄位numberofcows。而設定numberofcows欄位時,會呼叫set方法,看上去這個方法沒有引數,其實value就是它的引數,其中包含為這個字段設定的值。其實這就是用屬性來對字段進行封裝(這就是封裝啦)。

使用封裝還可以實現對屬性的唯讀、只寫:

1

public

string name //唯讀2

public

string name //

只寫

這樣寫屬性時,編譯器會自動建立private string name。這種是會自動實現後備成員變數的自動實現屬性。

如果是:

1

public

string name

這樣的沒有啥限定的屬性,其實和公有欄位沒多大區別了。

但是從物件導向的角度來講,公開的是方法,而不是欄位哦。而且微軟也推薦:所有的字段都設定為私有字段,如果要使用它們,則把它們封裝成屬性。對於這樣簡單的set或get,編譯器會自動進行inline處理,沒有函式進出棧的效能損失。所以還是建議不要用公有欄位了,給字段穿件衣服吧~~

C 字段,屬性和屬性封裝字段

c 類成員包括 字段,屬性和方法。對於日常對於乙個類我們新增成員時會有幾種方法。如對於乙個person 類,我們對於其中乙個成員 性別 gender 進行定義,可以寫成 1,public string gender 2,public string gender 3,private string ge...

c 字段封裝get set的詳解

使用系統 使用system.collections.generic 使用system.text 命名空間mypractice 這樣的方法先分配乙個叫名字的私有空間,小寫的名字用於類的內部使用,大寫的名稱用於外部使用 公共類persongetset 獲取,設定用法中一則是隱藏元件或類內部的真實成員 二...

類屬性和例項屬性詳解(python)

首先是什麼是類和例項 類是對一類具有相同屬性的物件的抽象。例項是根據類建立出來的乙個個具體的 物件 乙個類可以例項化出多個例項。author allen liu time 2017 8 2 this is an example class dog object leg num 4 d1 dog d2...