C 欄位和屬性

2021-08-26 17:50:53 字數 2017 閱讀 4284

作用:設定訪問許可權,限制類中的成員(屬性、方法等)可訪問的範圍,訪問範圍通常有,類的內部、類的外部。

最常用的型別:private(私有的,僅類的內部使用);public(公有的,沒有訪問限制)

注意:類的成員在定義的時候沒有顯示的寫出訪問修飾符,則預設是private。對應到字段和屬性中,通常字段修飾為private,屬性修飾為public。

二、欄位的使用

1.關於字段

a.欄位又稱為:「成員變數」,一般在類的內部做資料互動使用。

b.欄位命名規範:camel命名法(首單詞字母小寫)。

2.通俗的理解

私有化:欄位就好比我們的個人財產,僅供個人使用,所以一般是private修飾。

新增標準:根據程式的功能需求,具體來新增需要的不同型別的字段。

四、屬性

1.屬性的使用

作用:在物件導向設計中主要使用屬性描述物件的靜態特徵。

要求:一般採用pascal命名法(首字母大寫),資料型別要和對應的字段要一致。

2.屬性的理解

a.屬性其實就是外界訪問私有欄位的入口,屬性本身不儲存任何資料,在對屬性賦值和讀取的時候其實就是操作的對應私有字段。

圖例:

b.屬性本質其實就是乙個方法,通過get和set方法來操作對應的字段,通過反編譯工具我們可以看出,如圖:

3.屬性的作用

a.避免出現非法資料,例如乙個年齡屬性,正常邏輯是年齡是不可以出現負數的,如果使用者對年齡進行了負數的賦值,我們通過屬性的set方法加入判斷邏輯,從而排除這種非法資料。

示例:

b.限定屬性唯讀或者只寫,例如有些屬性為了保護資料,我們只能讀取,而不能賦值。具體使用的話,我們根據需要,遮蔽set或get方法達到唯讀和只寫。

示例:

c.沒有對應私有欄位的屬性,例如根據生日屬性獲取到年齡。

示例:

五、欄位與屬性比較

字段(成員變數)

a.欄位主要是為類的內部做資料互動使用,字段一般是private。

b.欄位可讀可寫。

c.當欄位需要為外部提供資料的時候,請將字段封裝為屬性,而不是使用公有字段(public修飾符),這是物件導向思想所提倡的。

屬性(方法)

a.屬性一般是向外提供資料,主要用來描述物件的靜態特徵,所以,屬性一般是public。

b.屬性具備get和set方法,可以在方法裡加入邏輯處理資料,靈活拓展使用。

六、自動屬性

1.屬性編寫新語法(自動屬性:.net3.0及其後續版本)

示例:

快捷方式:prop+tab+tab

注意:沒有特定業務邏輯的屬性都可以簡寫成自動屬性,自動屬性的格式不能修改。自動屬性對應的字段由編譯器自動生成。

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

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

c 欄位和屬性

一 字段 field 可以在宣告欄位的同時賦給它乙個初始值。二 屬性 property 1 引入 假如將字段宣告為public,則在類的外部都可以對該字段進行訪問和更改,違背了類的封裝特性。如果宣告為private,則這種形式的封裝通常又過於徹底。例如,你可能希望欄位從外部唯讀,但從內部可以更改,但...

欄位和屬性(C )

類成員預設為私有成員。如果不為類成員新增訪問修飾符,那麼預設的是private。公共成員需要顯式指定。欄位和屬性是不同的兩個概念 欄位是類中實打實的一種變數。用來儲存與物件相關聯的資料。所以當欄位規定為public時,在當前類之外其他類中 隨 時隨地訪問和修改字段值 只要定義好當前類的例項即可,除s...