當前位置:首頁 » 文件傳輸 » 類成員有幾種可訪問性
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

類成員有幾種可訪問性

發布時間: 2023-04-01 03:28:31

⑴ c#中訪問級別有哪些

共有4種。
private :限制為私有訪問。該修飾符只能用於類和結構的成員,如果成員未加訪問限制修飾符,則默認為private,對於在命名空間下直接定義的類型(如類,結構,介面,枚舉,委託等),不允許使用private。
對於類和結構的成員,如果聲明為私有的,那麼只有其所在類或結構中的其他成員可以訪問。
public:共有訪問。該修飾符可用於類和結構的成員,可用於命名空間下直接定義的類型。
對於類和結構成員,如果聲明為共有的,那麼除自身的成員,外部成員也可以訪問。
protected:限制為保護訪問。該修飾符只能用於類的成員,而對結構的成員以及在命名空間下直接定義的類型無效。
如果類的成員被聲明為保護的,那麼只有其所在的類及派生類中的成員可以訪問,無法從類的外部進行訪問。
internal:限制為內部訪問。該修飾符可用戶類和結構的成員,也可用於命名空間下直接定義的類型。任何一種類型或成員如果聲明為內部的,那麼它在本程序集內可以被自由訪問,對其他程序集來說是隱藏的。

protected和internal二者可以同時使用,只能用於類的成員,該成員只有其所在類及派生類中的成員可以訪問。

⑵ 簡述 private、 protected、 public、 internal 修飾符的訪問許可權。

public:類或成員可以由同一程序集中的任何其他代碼或引用它的另一個程序集訪問。

private:只能通過同一個類或結構中的代碼訪問類型或成員。

protected:類或成員只能由同一個類中的代碼訪問,或者在從該類派生的類中訪問。

internal:類或成員可以由同一程序集中的任何代碼訪問,但不能從另一個程序集訪問。

(2)類成員有幾種可訪問性擴展閱讀:

private、 protected、 public、 internal 修飾符除了可以單獨使用,還可以組合使用。

protected internal:訪問僅限於從包含類派生的當前程序集或類型。

private protected: 訪問僅限於從當前程序集中的包含類派生的包含類或類型。

除了使用protected internal或private protected組合時,成員或類只允許使用一個訪問修

飾符。名稱空間上不允許訪問修飾符。命名空間沒有訪問限制。

根據成員聲明發生的上下文,僅允許某些聲明的可訪問性。如果在成員聲明中未指定訪問修飾

符,則使用默認輔助功能。

頂級類型(不嵌套在其他類型中)只能具有internal或public可訪問性。這些類型的默認可訪

問性是internal。

⑶ 不同訪問屬性對類成員的訪問的限制都有什麼,不同訪問屬性,對類成員的訪問限制都有什麼

類成員的訪問屬性一般有:public,private,protected
public可以被外部類或函數訪問,沒有限制
private只有定義這個變數的類內部可以訪問
protected只有該類和其子類能夠訪問
internal(C#)只能被當前的應用程序訪問
default(Java)只能被當前的包訪問,並且子類無法訪問

⑷ 在開發C#程序過程中,如果定義的類不寫訪問修飾符,則類默認的訪問類型是

1.命名空間下的元素的默認訪問修飾符
public : 同一程序集的其他任何代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
internal : 同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集不可以訪問。

2.各類型中的成員的默認訪問修飾符
剩下的修飾符主要是正對繼承這個語言特性的,擁有繼承的類型有兩個類(class)和介面(interface)。public,internal同樣可以用於類型成員。
private : 同一類和結構的代碼可以訪問該類型和成員。
protected : 同一類和派生(繼承特性)類中的代碼可以訪問該類型和成員。
protected internal : 同一程序集中的任何代碼或其他程序集中的任何派生類都可以訪問該類型或成員。

MSDN提示 :
1.) 派生類的可訪問性不能高於其基類型。換句話說,不能有從內部類 A 派生的公共類 B。如果允許這種情況,將會使 A 成為公共類,因為 A 的所有受保護的成員或內部成員都可以從派生類訪問。
2.) 成員的可訪問性決不能高於其包含類型的可訪問性。
3.) 可以使用五種訪問類型中的任何一種來聲明類成員(包括嵌套的類和結構)。

介面(interface)
介面成員訪問修飾符默認為public,且不能顯示使用訪問修飾符。

類(class)
構造函數默認為public訪問修飾符。
析構函數不能顯示使用訪問修飾符且默認為private訪問修飾符。
類的成員默認訪問修飾符為private;

枚舉(enum)
枚舉類型成員默認為public訪問修飾符,且不能顯示使用修飾符。

結構(struct)
結構成員默認為private修飾符。
結構成員無法聲明為protected成員,因為結構不支持繼承。

嵌套類型
嵌套類型的默認訪問修飾符為private。 和類,結構的成員默認訪問類型一致。

⑸ C++,私有的類成員函數怎麼訪問

類的成員變數分三種: public protect private

1、類的成員函數可以訪問類這三類
2、繼承類成員函數可以訪問 protect 類型
3、只有本身類的成員函數才可以訪問 private 類型

4、類的對象若在其他函數中是不可以訪問類的 protect private類型變數

類其實是個模型。
而對象就是找個這個模型製作的實體。
比如,類是造車的圖紙,對象就是找個圖紙造出的汽車。
類的成員是分級別的:protect,public,private。
在類內部定義的函數可以訪問任何一個變數,或者調用任何的類內部的函數,但是,如果被定義成private的話,對象是不能調用的,也就是對象只能調用定義為public的數據,如果你確實需要調用某個private的變數,你可以定義一個public的函數來返回這個變數,比如:
class D
{
private:
int a;
public:
int Getint(){return a;}
......
}
這里你的對象不能調用a的,
也就是不能
int b;
D d;//假設已經寫好了構造函數
b=d.a;//這是錯誤的,
但是你可以
b=d.Getint();
這樣就可以把a的值給b了。
所有的public的函數都可以通過
<對象>.<函數名>
的方式來調用

⑹ 子類能訪問父類的哪些成員

1、能夠訪問標為public protected的成員變數和方法;
2、如果子類與父類在同一包內,還能訪問默認(無修飾符)的成員變數與方法。
3、不能訪問標為private的成員。