访问修饰符的个人理解-private与protected
??????????????????????????? 一:private
???????????????????????????
private --只有在聲明它的類(lèi)或結(jié)構(gòu)中訪問(wèn).
例:
public class A
{
? private string name="xu";
? int age="23";? //默認(rèn)為private
}
這時(shí)就不能在A的外部直接讀取name和age的值,只有通過(guò)A類(lèi)中的方法或?qū)傩酝瓿?。完整示?#xff1a;
public class A
{
? private string name="xu";
? int age="23";? //默認(rèn)為private
? public string GetName()? //這時(shí)的屬性或方法就不能再聲明為private 或protected了,這樣會(huì)導(dǎo)致在外部同樣不能訪問(wèn)。
? {
? return name;
? }
? public int Age
? {
? get { retunr age;}
? }
}
public class B
{
?? public B()
?? {
???? A a1=new A();
???? //string x=a1.name;? 這樣就不能訪問(wèn)A的name了
???? string x=a1.GetName() ; //通過(guò)方法來(lái)訪問(wèn)。
???? //int age=a1.age;??? can not do this;
???? int age=a1.Age; //通過(guò)屬性來(lái)訪問(wèn)
?? }
}
?????????????????????????????????? 二 protected
protected 關(guān)鍵字是一個(gè)成員訪問(wèn)修飾符。受保護(hù)成員在它的類(lèi)中可訪問(wèn)并且可由派生類(lèi)訪問(wèn)。
個(gè)人理解為:受保護(hù)成員只能在聲明它的類(lèi)中訪問(wèn)(如同private一樣)或者通過(guò)它的派生類(lèi)來(lái)訪問(wèn)。
如下例:
using System;
class A
{
??? protected int x = 123;
??? public int X{get return x;}
}
class B : A
{
??? static void Main()
??? {
??????? A a = new A();
??????? B b = new B();
??????? // Error CS1540, because x can only be accessed by
??????? // classes derived from A.
??????? // a.x = 10;
??????? // a.X;----這樣就可以讀取
???????
??????? // OK, because this class derives from A.
??????? b.x = 10;??
??? }
}
分析:
一:當(dāng)使用a.x=10時(shí),由于A是基類(lèi),因此其下的private x不能外部訪問(wèn),此時(shí)用a.x=10就會(huì)報(bào)錯(cuò)。
二:為什么用b.x=10就可以呢,這也是外部呀? ^_^:因此,此時(shí),類(lèi)B是類(lèi)A的派生類(lèi),protected 修飾的如果在派生類(lèi)中就可以訪問(wèn)。
總結(jié):protected類(lèi)型的,在外部而非派生類(lèi)中訪問(wèn)時(shí)除非通過(guò)方法或?qū)傩?#xff0c;否則不可以訪問(wèn)。而在派生類(lèi)中就可以訪問(wèn)。
????? private類(lèi)型的,除非通過(guò)方法或?qū)傩?#xff0c;否則不可以在外部訪問(wèn)。
?????
?????
????? 屬于? 默認(rèn)的成員可訪問(wèn)性? 該成員允許的聲明的可訪問(wèn)性?
enum? public?? 無(wú)
?
class? private? < public protected internal private protected internal >
?
interface? public? 無(wú)
?
struct? private? <public internal private >
?
轉(zhuǎn)載于:https://www.cnblogs.com/McJeremy/archive/2008/05/16/1200843.html
總結(jié)
以上是生活随笔為你收集整理的访问修饰符的个人理解-private与protected的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关注震灾
- 下一篇: 批处理-DHCP绑定IP地址