C 溫故而知新學習系列之物件導向程式設計 屬性(十二)

2022-03-05 23:20:06 字數 1194 閱讀 5869

字段

欄位是儲存類要滿足其設計所需要的資料,欄位是與類相關的變數

比如以前講的cat類中的private string _name;_name其實就是乙個字段,它通常是類的私有變數

屬性屬性是乙個方法或者一對方法,但在呼叫它的**來看,它是乙個字段,即屬性適合以字段的方式使用方法呼叫的場合

通常欄位都是private,即私有變數,而屬性是public,即公有變數,那麼在這裡_shoutnum就是私有的字段,而shoutnum就是公有的對外屬性,由於是對外的,一般首字母大寫,而字段一般首字母並且小寫前面加上「_」

屬性有兩個方法get和set,get訪問器返回與宣告的屬性相同的資料型別,表示的意思是呼叫時以得到內部欄位的值或引用,set訪問器沒有顯式設定引數,但是它有乙個隱式引數,用關鍵字value表示,它的作用是呼叫屬性時可以給內部欄位或引用賦值

private int _shoutnum = 3;

public int shoutnum

//get表示外界呼叫時可以得到_shoutnum的值

get;

//set表示外界可以給內部的_shoutnum賦值

set;

思考我們把字段的修飾符改成public int _shoutnum = 3,不就可以做到對變數即讀又寫了嗎?不就可以跳過屬性,不用屬性了嗎?

是的,如果僅僅是可讀可寫,那屬性的作用就與宣告了public的字段沒什麼區別了,但是我們希望對外公開的資料能得到更多的控制,這就好像我們的房子,我們並不希望房子是全部透明的,那樣你在家裡幹什麼都被看的清清楚楚,毫無隱私而言,通常我們的房子有窗戶和門,但是更多的是不透明的牆,這門和窗就是public,而房子內的東西就是private,門窗是可以控制的,我們不希望所有人都從門隨意進入,也不希望蒼蠅從窗子來回出入,這就是屬性的作用了,如果你把字段宣告為public,那麼就意味著不設防的門窗,任何時候呼叫者都可以讀取或寫入,這回是非常糟糕的一件事情,如果對外的資料寫成屬性就會好很多

就好比給窗子裝了紗窗,只讓空氣和陽光進來,文字蒼蠅就不能進入,多了層控制,多了層保護

private int _shoutnum = 3;

public int shoutnum

get;

//控制叫聲次數,最多只能叫5聲,多了層控制,多了層保護

setif(value <= 5)

_shoutnum = value;

else

_shoutnum = 5;

C 溫故而知新系列 閉包

要說閉包的由來就不得不先說下函式式程式設計了。近幾年函式式程式設計也是比較火熱,我們先來看看函式式程式設計的一些基本的特性這個有助於我們理解閉包的由來。函式式程式設計是一種程式設計模型,他將計算機運算看做是數學中函式的計算,並且避免了狀態以及變數的概念。這裡很明顯的指出了函式式程式設計中最重要的就是...

C 溫故而知新系列 閉包

要說閉包的由來就不得不先說下函式式程式設計了。近幾年函式式程式設計也是比較火熱,我們先來看看函式式程式設計的一些基本的特性這個有助於我們理解閉包的由來。函式式程式設計是一種程式設計模型,他將計算機運算看做是數學中函式的計算,並且避免了狀態以及變數的概念。這裡很明顯的指出了函式式程式設計中最重要的就是...

C 陣列 溫故而知新

using system using system.collections.generic using system.linq using system.text namespace 陣列 陣列初始化器只能在宣告陣列變數時使用,不能在宣告陣列之後使用 int iii new int 用花括號初始化陣...