《隨筆七》 C 中的 「 屬性 靜態屬性 」

2021-08-31 15:47:49 字數 2647 閱讀 7147

目錄屬性

使用屬性

利用 set 和 get  訪問器 執行其它運算

唯讀和只寫屬性

屬性和公共字段

自動實現屬性

靜態屬性

屬性是代表類的例項或類中的乙個資料項的成員。屬性指的是一組兩個匹配的、稱為訪問器的方法:

public  返回型別  識別符號

set訪問器總是:

get訪問器總是:

屬性跟字段的相同點:

屬性跟字段的不相同點:

訪問器的重點如下:

寫入和讀取屬性的訪問器時,會被隱式呼叫:

注意: 不能顯式地呼叫訪問器,就跟呼叫函式那樣, 會出現編譯錯誤。

namespace ch05ex03

get}

}class program}}

我們經常將類中的字段宣告private以封裝該欄位, 然後宣告乙個public的屬性來控制從類的外部對該字段的訪問。和屬性關聯的字段稱為後備欄位或後備儲存。

屬性和後備字段需要注意的問題有:

private  double namefield = 3.14; //第一種約定

public double namefild

get}

private  double _namefield = 3.14;  // 第二種約定

public double namefild

get}

屬性訪問器不僅僅只可以對關聯的字段傳入傳出資料, 還可以執行任何計算,或者不執行任何計算。但是get訪問器必須返回乙個屬性型別的值。

下面看乙個更有用的示例:

namespace ch05ex03

get}

}class program}}

屬性比公共字段更好,理由如下:

自動實現屬性:允許只宣告屬性而不宣告後備字段。 編譯器會為你建立隱藏的後備字段, 並且自動掛接到get 和 set 訪問器上。

自動實現屬性的要點如下:

namespace ch05ex03

}class program}}

除了方便之外,自動實現的屬性還允許您輕鬆地插入乙個屬性,本來那裡您可能想要宣告乙個公共欄位的。

屬性也可以宣告為 static,靜態屬性的訪問器和所有靜態成員一樣,具有以下特點:

namespace ch05ex03

public void printvalue()

");}

}class program

");d.myvalue = 10; // 在類的外部設定靜態屬性的值

writeline($"再輸出靜態屬性的值:");

readkey();}}

}

再看乙個示例程式:

namespace ch05ex03

"); //writeline($"輸出bb的值:"); 錯誤,靜態成員函式不可以輸出非靜態成員資料

}public void printvalue()

"); // 非靜態的成員函式可以輸出靜態欄位的值

writeline($"輸出aa的值:");

}public static int myvalue

get}

}class program

");d.myvalue = 100; // 在類的外部設定靜態屬性的值

writeline($"再輸出靜態屬性的值:");

d myd = new d();

myd.printvalue();

readkey();}}

}輸出結果為:

先輸出靜態屬性的值:0

再輸出靜態屬性的值:100

輸出bb的值:100

輸出aa的值:12

C 定義屬性 靜態屬性

2012年06月27日 08 57 00 weixin 34198583 閱讀數 11 c 靜態屬性可以是讀寫屬性,唯讀屬性,只寫屬性中的任意一種。也就是說,靜態屬性可以同時包含set訪問器和get訪問器,也可以只包含其中一種。靜態屬性定義方式就是在屬性前加static關鍵字,語法如下 訪問修飾符 ...

java中靜態屬性與非靜態屬性

student 類 public class student public student string name public string getname public void setname string name 測試類 public class test 1.靜態的屬性屬於類的,不依賴於...

php 類中的靜態屬性

class ceshi public function b ce new ceshi ce a ce b echo cee new ceshi cee b echo class exercise public function b ce new exercise ce a ce b echo cee...