學習C 修飾符 類修飾符和成員修飾符

2021-07-05 04:39:49 字數 1898 閱讀 1658

c#修飾符之類修飾符:public、internal、 partial、abstract、sealed、static

c#修飾符之成員修飾符:public、protected、private、internal、sealed、abstract、virtual、override、readonly、const

public:最開放,所有的本程式集以及其他的程式集裡面的物件都能夠訪問

protected:比較開放,自身成員以及子類成員可訪問

private:只有自身成員才能夠訪問

internal:本程式集內的成員可以訪問

partial:部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中

abstract:修飾類的時候表示該類為抽象類,不能夠建立該類的例項。修飾方法的時候表示該方法需要由子類來實現,如果子類沒有實現該方法那麼子類同樣是抽象類;且含有抽象方法的類一定是抽象類

sealed:修飾類時表示該類不能夠被繼承,修飾方法時表示該方法不能被覆寫。

static:修飾類時表示該類時靜態類,不能夠例項化該類的物件,既然不能例項化該類,那麼這個類也就不能夠含有物件成員,即該類所有成員為靜態;修飾類成員時,該成員為類成員,只能通過【類.成員名】的方式訪問

當static修飾建構函式時,建構函式不能含有任何引數,不能含有修飾符,建構函式不能對物件成員進行初始化操作。但是能夠對靜態成員進行初始化或者呼叫。不能保證他在什麼時候執行,卻能保證在第一次使用型別前執行。在靜態建構函式中初始化的靜態成員為最終初始化結果。

virtual:修飾方法成員,表示虛方法。父類可以含有該類的實現,子類可以覆寫該函式。

override:表示該方法為覆寫了父類的方法。

readonly:修飾字段,表示該字段為唯讀字段。

注意:readonly修飾引用型別時由於操作不當可能修改該唯讀物件狀態。例如:

readonly list< person> persons=….;

我們可能在某些地方對persons 進行了修改:persons.add(new person());

const:修飾字段,表示該字段為唯讀字段。並且在編譯時必須能夠明確知道該字段的值,其值是硬編碼到程式中去的,修改了該型別成員後需要重新編譯才能使修改生效。

而readonly是執行時唯讀,內容在執行時確定,所以修改了readonly型別成員後無需重新編譯即可生效。

readonly不能修飾區域性變數,const可以。

注意:當乙個類或方法沒有被任何修飾符修飾時,預設為internal:

c#用多種修飾符來表達類的不同性質。根據其保護級c#的類有五種不同的限制修飾符:

public可以被任意訪問;

protected只可以被本類和其繼承子類訪問;

internal只可以被本組合體(assembly)內所有的類訪問,組合體是c#語言中類被組合後的邏輯單位和物理單位,其編譯後的副檔名往往是「.dll」或「.exe」。

protected internal唯一的一種組合限制修飾符,它只可以被本組合體內所有的類和這些類的繼承子類所訪問。

private只可以被本類所訪問。

如果不是巢狀的類,命名空間或編譯單元內的類只有public和internal兩種修飾。

new修飾符只能用於巢狀的類,表示對繼承父類同名型別的隱藏。

abstract用來修飾抽象類,表示該類只能作為父類被用於繼承,而不能進行物件例項化。抽象類可以包含抽象的成員,但這並非必須。abstract不能和new同時用。

抽象類a內含乙個抽象方法f(),它不能被例項化。類b繼承自類a,其內包含了乙個例項方法g(),但並沒有實現抽象方法f(),所以仍然必須宣告為抽象類。類c繼承自類b,實現類抽象方法f(),於是可以進行物件例項化。

sealed用來修飾類為密封類,阻止該類被繼承。同時對乙個類作abstract和sealed的修飾是沒有意義的,也是被禁止的。

C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...

C 的類修飾符和成員修飾符

一 類修飾符 類修飾符 public internal partial abstract sealed static new protected private protected internal 1 public 訪問不受限制的,所有的本程式集以及其他的程式集裡面的類都能夠訪問 2 intern...

java 類修飾符 成員變數修飾符 方法修飾符總結

類修飾符 public 訪問控制符 將乙個類宣告為公共類,他可以被任何物件訪問,乙個程式的主類必須是公共類。abstract,將乙個類宣告為抽象類,沒有實現的方法,需要子類提供方法實現。final,將乙個類生命為最終 即非繼承類 表示他不能被其他類繼承。friendly,預設的修飾符,只有在相同包中...