C 訪問修飾符

2021-10-01 23:06:34 字數 3289 閱讀 4741

許可權範圍:

這個目標可以被哪些物件在什麼地方可以訪問到這個目標的資料

public

訪問修飾符允許乙個類將其成員變數和成員函式暴露給其他的函式和物件

。任何公有成員可以被外部的類訪問。所有

類或成員,任何**均可訪問該項

訪問許可權最大

意味著最不安全

範圍:類自己

、同乙個程式集

、同乙個專案中

、和自己有血緣關係的類

private

訪問修飾符允許乙個類將其成員變數和成員函式對其他的函式和物件進行隱藏

。只有同乙個類中的函式可以訪問它    

的私有成員

。即使是類的例項也不能訪問它的私有成員。

類的成員的預設訪問修飾符

private

訪問許可權最小

意味著針對於物件自己而言最安全

範圍:類自己

protected訪問修飾符允許子類訪問它的基類的成員變數和成員函式

。這樣有助於實現繼承

。類和內嵌類的成員,只有派生類可以訪問該項

範圍:類自身

、具有血緣關係的類

internal

訪問修飾符允許乙個類將其成員變數和成員函式暴露給當前程式中的其他函式和物件

。換句話說,帶有

internal

訪問修飾符的任何成員可以被定義在該成員所定義的應用程式內的任何類或方法訪問

。           

類的預設訪問修飾符

internal範圍

:類自身

、同一程式裡面的所有類

protected

internal

訪問修飾符允許乙個類將其成員變數和成員函式對同一應用程式內的子類以外的其他的類物件和函式

進行隱藏

。這也被用於實現繼承

。類和內嵌類的所有成員,只能包含它的程式集和派生型別的任何**中訪問該項 範圍

:類自身

、同一程式裡面的所有類

、有血緣關係的類

作用

1.用作於例項新物件

2. 用於繼承中函式的隱藏

static

static

可以修飾類

、以及類成員(類中的全域性成員)

static

修飾類,則類中的成員也全部是

static

靜態類不允許例項化

靜態類中的公開成員直接使用類名點進行訪問

非靜態類中的公開靜態成員通過類名點訪問,非靜態成員通過例項化物件點訪問

設定虛擬成員,放在正常類中,這個類可以直接例項物件進行使用,也可以在其派生類中對虛擬成員進行重寫使用

抽象成員,必須放在抽象類中,抽象成員只有成員的宣告不允許有成員的實現,抽象類不能例項成物件,抽象成員在其派生   類中實現之後方可被使用

派生類中的成員可以使用override

,前提是基類中的相同命名成員必須是

virtual

或者abstract

密封類,最終類,不允許被繼承類、方法或屬性,對於類代表密封,不允許繼承該類,對於屬性和方法,成員重寫已繼承的虛擬成員,但任何派生類中的任    何成員都不能重寫該成員

。該修飾符必須和

override

一起使用

。在乙個類的成員內部,this

關鍵字代表物件自身,也可以使用

this

關鍵字對類自身的成員進行訪問

用於引用類的當前例項,也包括繼承而來的方法,通常可以隱藏this

。 msdn

中的小結功能主要包括:

(1)限定被相似的名稱隱藏的成員

(2)將物件作為引數傳遞到其他方法

(3)宣告索引器

this

指代類物件本身,用於訪

問本類的所有常量、字段

、屬性和方法成員,而且不管訪問元素是任何訪問級別

。因為,

this

僅僅侷限於物件內部,物件外部是無法看到的,這就是

this

的基本思想

。另外,靜態成員不是物件的一部分,因此不能在靜態方法中引用

this

。在乙個類中代表其父類,可以使用base

訪問父類的類成員

用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式

、例項方法和例項屬性訪問器中

。 msdn

中小結的具體功能包括

: (1)

呼叫基類上已被其他方法重寫的方法

。 (2)

指定建立派生類例項時應呼叫的基類建構函式。

base

常用於,在派生類物件初始化時和基類進行通訊

。 base

可以訪問基類的公有成員和受保護成員,私有成員是不可訪問的。

在多層繼承中,

base

可以指向的父類的方法有兩種情況

:一是有過載存在的情況下,

base

將指向直接繼承的父類成員

的方法;

而沒有過載存在的情況下,

base

可以指向任何上級父類的公有或者受保護方法。

通用規則:

1、盡量少用或者不用

base

和this

。除了避開子類的名稱衝突和在乙個建構函式中呼叫其他的建構函式之外,

base

和this

的使用容易引起不必要的結果

。  2

、在靜態成員中使用

base

和this

都是不允許的

。原因是,

base

和this

訪問的都是類的實

例,也就是物件,而靜態成員只能由類來訪問,不能由物件來訪問。 3

、base

是為了實現多型而設計的。 4

、使用this或

base

關鍵字只能指定乙個建構函式,也就是說不可同時將

this

和base

作用在乙個建構函式上。 5

、簡單的來說,

base

用於在派生類中訪問重寫的基類成員;而

this

用於訪問本類的成員,當然也包括繼承而來公有和保護成員

。    6、

除了base

,訪問基類成員的另外一種方式是

:顯示的型別轉換來實現

。只是該方法不能為靜態方法

C 訪問修飾符

所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性 public 訪問不受限制。可以類內和任何類外的 中訪問。private 可以被所屬類訪問。只有同一類或結構中的 可以訪問該型別或成員。pro...

C 訪問 修飾符

例 internal class a public class b a 是不允許的 public class c是不允許的.msdn參考 訪問修飾符 c 程式設計指南 所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修...

C 訪問修飾符

public 公開的公共的 private 私有的,只能在當前類的內部訪問,類中的成員如果不加訪問修飾符,預設就是 private protected 受保護的,只能在當前類的內部以及該類的子類中訪問。internal 只能在當前專案中訪問。在同乙個專案中,internal 和public 的許可權...