當前位置:首頁 » 密碼管理 » protected的訪問范圍

protected的訪問范圍

發布時間: 2022-11-03 16:41:20

1. protected與public的區別

public protected private2009-08-06 16:03一,作為數據成員修飾符:

public, private, protected這三個關鍵詞,對類成員訪問和在基類繼承時進行的訪問模式限定符。

在成員訪問模式中:
public 表示共有;類的數據成員和函數可以被該類對象和派生類訪問。

private 私有型;自己的類可以訪問,但派生類不能訪問。

protected 保護型;自身類和派生類可以訪問相當於自身的private型成員,它同private的區別就是在對待派生類的區別上,

C++中 public,protected, private 訪問標號小結

第一:private, public, protected 訪問標號的訪問范圍。

private:只能由1.該類中的函數、2.其友元函數訪問。不能被任何其他訪問,該類的對象也不能訪問。

protected:可以被1.該類中的函數、2.子類的函數、以及3.其友元函數訪問。但不能被該類的對象訪問。

public:可以被1.該類中的函數、2.子類的函數、3.其友元函數訪問,也可以由4.該類的對象訪問。

註:友元函數包括3種:設為友元的普通的非成員函數;設為友元的其他類的成員函數;設為友元類中的所有成員函數。

第二:類的繼承後方法屬性變化。

private 屬性不能夠被繼承。

使用private繼承,父類的protected和public屬性在子類中變為private;

使用protected繼承,父類的protected和public屬性在子類中變為protected;

使用public繼承,父類中的protected和public屬性不發生改變;如下所示:

public: protected: private:

public繼承 public protected 不可用

protected繼承 protected protected 不可用

private繼承 private private 不可用

protected繼承和private繼承能降低訪問許可權。

C++中public,protected,private訪問小結

第一:private,public,protected方法的訪問范圍.

private: 只能由該類中的方法訪問,不能被該類的對象訪問.

protected: 可以被該類中的方法和其友元函數訪問,但不能被該類的對象訪問

public: 可以被該類中的方法和其友元函數訪問,也可以由該類的對象訪問

第二:類的繼承後方法屬性變化:

使用private繼承,父類的所有方法在子類中變為private;

使用protected繼承,父類的protected和public方法在子類中變為protected,private方法不變;

使用public繼承,父類中的方法屬性不發生改變;

二,作為繼承子類的修飾符

對於一個父類(基類),如果聲明一個成員為private,就說明這個東東使我的,不能讓其他人用,包括子孫。如果是protected,我就會告訴我的子孫,你們要小心的用,但絕對不能讓外人使用。如果說是public,那就是說,這個東東大家隨便用吧。對於一個子類(從基類繼承而來的),private是一個吝嗇的繼承者,他將從祖輩繼承下來的東西統統藏起來,不讓別人碰觸(包括自己的子孫)。(當然他也只能使用祖輩授予其的權力,即只能使用祖輩中的protected和public)。protected是一個有保護意識的繼承者,他將從祖輩繼承下來的東西,只允許自己的子孫使用(即使以前祖輩的東西是公眾都可以使用的public)。public是一個循規守據,他不關心祖輩的東西,原來是什麼規矩就是什麼

在繼承時采公開(public)繼承的方式來繼承一個類別時,父類別與子類別為"is-a"的關系,子類別繼承父類別的公開(public)介面及受保護(protected)的成員,子類別是父類別的細化型態。

保護(protected)繼承可以改變繼承下來的基底類別成員許可權,保護的意思就是讓這些成員繼承下來之後,保護它們僅能在類別與衍生類別中使用,保護繼承的語法如下所示:

class B : protected A {
// 實作
};

保護繼承時使用protected來繼承基底類別,繼承下來的成員在衍生類別中的許可權變為如下:
基底類別 衍生類別
private 不繼承
protected protected
public protected

簡單的說,原來的許可權在protected以下的保留其原來許可權,而在protected以上的就降為protected,子類別protected繼承的目的在只希望保留父類別中已實作的公開成員與受保護的成員為己用或接下來的衍生類別使用,並提供自己的公開介面。

您也可以在繼承基底類別之後,將它所有的成員一律改為私用(private),使用私用(private)繼承可以達到這個目的,其語法如下:

class B : private A {
// 實作
};

基底類別中的成員在被繼承之後,其許可權如下所示:
基底類別 衍生類別
private 不繼承
protected private
public private

private繼承被稱為「實作繼承」,意味著子類別只想保留父類別中已實作的公開與受保護的成員為己用,並提供自己的公開介面與接下來會被繼承的受保護的成員。

2. 訪問許可權為protected的類成員可被訪問的范圍是什麼

protected是訪問控制的一種 。在類中被protected修飾的函數或數據成員,只能被該類或其子類的以及其友元函數訪問。

特別要注意的是:訪問許可權為protected的類成員不能被該類的實例對象或其子類的實例對象訪問。以下的C#代碼演示了這一點

//父類
publicclassFather
{

protectedintx;
publicFather()
{
//正確!
x=10;
}
publicvoidShowX()
{
//正確!
Console.Write("x={0}",x);
}
}
//子類
publicclassSon:Father
{
publicSon():base()
{
//正確!
x=100;
}

publicvoidShowXSon()
{
//正確!
Console.Write("x={0}",x);
}
}
classProgram
{
staticvoidMain(string[]args)
{
Fatherf=newFather();
//f.x=30;<--錯誤!!!
f.ShowX();
Sons=newSon();
//s.x=20;<--錯誤!!!
s.ShowXSon();
}
}

3. public ,protected, private這三種許可權限定關鍵字的限定的內容訪問范圍是什麼

private關鍵字:只在本類中可以使用
默認:在本類和本包中可以使用
protected關鍵字:在本類、本包和不同包的子類中可以使用
public關鍵字:在所有的類和包中可以使用
即:
Private強調給自己使用
默認強調給同包下的使用
protected強調給子類使用
public給所有用

4. private、protected、pubic、internal修飾符的訪問許可權分別是

  • private : 私有成員, 在類的內部才可以訪問(只能從其聲明上下文中進行訪問)

  • protected : 保護成員,該類內部和從該類派生的類中可以訪問

  • Friend:友元 ,聲明 friend 元素的程序集中的代碼可以訪問該元素,而不能從程序集外部訪問

  • Protected Friend:在派生類或同一程序集內都可以訪問

  • public : 公共成員,完全公開,沒有訪問限制

  • internal: 在同一命名空間內可以訪問

5. 簡述Private和Protected許可權

從如下三方面簡述Private和Protected許可權:

一、使用方面:

1、private:在模塊級別使用編程語句聲明私有變數並分配存儲空間。

2、protected:在模塊級別使用編程語句聲明受保護的變數並分配存儲空間。

二、規則方面:

1、private:在賦值之前,聲明的對象變數具有特定的Nothing值,這表明該變數未指向任何對象實例。如果未指定數據類型或對象類型,並且未在模塊中使用Deftype語句,則默認情況下變數為Variant。

2、protected:繼承的類可以訪問protected成員,但不能訪問private成員。

三、功能方面:

1、private:只能在包含其聲明的模塊中使用。可以使用Private語句聲明變數的數據類型,也可以使用Private語句聲明變數的對象類型。

2、protected:具有protected訪問控制級別的成員是半公開的,外界無法直接訪問此控制級別的成員,但是派生類的base指針(也可以通過C ++進行訪問)可以訪問。

6. Private 的訪問限制

第一:private, public, protected 訪問標號的訪問范圍。

private :只能由1.該類中的函數、2.其友元函數訪問。
不能被任何其他訪問,該類的對象也不能訪問。

protected :可以被1.該類中的函數、2.子類的函數、以及3.其友元函數訪問。
但不能被該類的對象訪問。

public :可以被1.該類中的函數、2.子類的函數、3.其友元函數訪問,也可以由4.該類的對象訪問。

註:友元函數包括3種:設為友元的普通的非成員函數;設為友元的其他類的成員函數;設為友元類中的所有成員函數。

第二:類的繼承後方法屬性變化。
private 屬性不能夠被繼承。
使用private繼承,父類的protected和public屬性在子類中變為private;
使用protected繼承,父類的protected和public屬性在子類中變為protected;
使用public繼承,父類中的protected和public屬性不發生改變;

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

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

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

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

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

(7)protected的訪問范圍擴展閱讀:

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

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

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

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

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

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

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

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

問性是internal。

8. protected是什麼意思

java中的訪問修飾符,他的修飾范圍是:只能在同一個包下調用proteted修飾的方法,其他包中無法調用。
java中還有其他訪問修飾符,比如:public,private,default(default修飾符通常默認不寫),private修飾符修飾范圍最小,public 修飾范圍最大,public可以修飾的方法,在不同包下也可以調用。
希望這些對你有用!

9. 用Protected修飾的成員變數和方法具有什麼樣的訪問許可權制

訪問修飾符及范圍: private(私人,類內) < protected(家內,類及子類內) < internal (族內,同一個dll文件內)< public(公家,無限制)

10. 說明java中public、protected、default、private四個訪問控制修飾的作用

關於訪問控制,private,default,protected,public,不加任何訪問許可權限定的成員採用的默認訪問許可權,也就是default或者package,可以被這個類本身和同一個包中的類所訪問;private對訪問許可權的限制最大,修飾那些不想讓外界訪問的數據和方法,表示私有的,這有利於數據的安全和數據的一致性,同樣如果以個類的構造方法被申明為private其他不能生成該類的實例對象;protected申明的成員可以被這個類本身和他的子類以及同一個包中所有其他類訪問;帶有public的成員可以被所有的類訪問。

熱點內容
我的世界龍蛋伺服器 發布:2025-05-17 06:20:06 瀏覽:912
安卓系統軟體怎麼不更新 發布:2025-05-17 06:19:15 瀏覽:817
安卓夏日傳說存檔放哪個文件 發布:2025-05-17 06:12:44 瀏覽:606
如何通過伺服器id找到主人 發布:2025-05-17 06:12:11 瀏覽:37
ug編程吧 發布:2025-05-17 06:07:45 瀏覽:72
sql臨時表和表變數 發布:2025-05-17 06:02:38 瀏覽:724
蘋果如何用安卓無線耳機 發布:2025-05-17 06:01:53 瀏覽:822
sqlserver表關系 發布:2025-05-17 06:01:02 瀏覽:997
2017途觀配置什麼音響 發布:2025-05-17 05:53:50 瀏覽:844
64位安裝sql2000 發布:2025-05-17 05:33:17 瀏覽:846