1 public
共有訪問。不受任何限制。
2 private
私有訪問。只限於本類成員訪問,子類,例項都不能訪問。
3 protected
只限於本類和子類訪問,例項不能訪問。
4 internal
內部訪問。只限於本專案內訪問,其他不能訪問。
5 protected internal
內部保護訪問。只限於本專案或是子類訪問,其他不能訪問。
6 abstract
抽象類7 sealed
密封的類
修飾符含義
無或internal
只有在當前專案中訪問類
public
可以在任何地方訪問類
abstract或internal abstract
類只能在當前專案中訪問,不能例項化,只能供繼承之用
public abstract
類可以在任何地方訪問,不能例項化,只能供繼承之用
sealed或internal sealed
類只能在當前專案中訪問,不能供派生之用,只能例項化
public sealed
類可以在任何地方訪問,不能供派生之用,只能例項化
8 類和結構
先看一段例項**
namespace test
class myclass
public int val;
struct mystruct
public int val;
class program
static void main(string args)
myclass objecta = new myclass();
myclass objectb = objecta;
objecta.val = 10;
objectb.val = 20;
mystruct structa = new mystruct();
mystruct structb = structa;
structa.val = 30;
structb.val = 40;
console.writeline("objecta.val = ",objecta.val);
console.writeline("objectb.val = ",objectb.val);
console.writeline("structa.val = ",structa.val);
console.writeline("structb.val = ",structb.val);
console.readkey();
輸出結果為:
objecta = 20
objectb = 20
structa = 30
structb = 40
物件是引用型別(objecta和objectb)。在把物件賦值給變數的時候,實際上是把帶有乙個指標的變數賦值給了該指標所指向的物件。在實際**中,指標是記憶體中的乙個位址,位址是記憶體中該物件所在的位置。在用下面的**行把第乙個物件引用賦值給型別為myclass的第二個變數時,實際上是複製了這個位址。
myclass objectb = objecta;
這樣兩個變數就包含同乙個物件的指標。
而結構是值型別。其變數並不包含結構的指標,而是包含結構本身。在用下面的**把第乙個結構賦值給型別為mystruct的第二個變數時,實際上是把第乙個結構的所有資訊複製到另乙個結構中。
mystrujct structb = structa;
C 學習筆記(五) 類成員的定義
一 定義域 標準的宣告格式 class myclass 這種宣告格式的成員是可以對其進行初始化的。但是它是 myclass 的公有成員,可在例項化 myclass 的物件後進行初始化或修改操作。myclass myclass new myclass myclass.myint 1 域 成員 也可以使...
c 經典入門學習筆記 定義類成員
基本語法部分 成員的訪問級別確定成員的使用範圍,常用下面的關鍵字 public 成員可以由任何 訪問 private 只能由類中的 訪問 internal 只能由定義它的專案內部的 訪問 protected 成員只能由類或派生類中的 訪問 欄位的定義 class myclass 如果該屬性是唯讀的,...
c 學習筆記 類
c 學習筆記 類 refer c primer 在c 中,用類來定義自己的抽象資料結構。在乙個原始檔中,乙個類只能被定義一次 宣告可以多次 如果在多個檔案中定義乙個類,那麼每個檔案定義必須完全相同。可以宣告乙個類而不定義它。這個宣告被稱為向前宣告,是乙個不完全型別 已知其為乙個型別,但不知道包含哪些...