【c#】c#的封装

转载,看到一个很形象的比喻,所以贴过来(原地址:见该页面下边笔记),并加上个人需要的一点补充

感谢@sally44形象的比喻,其他语言亦可以借鉴

————————————————————————————————————

比喻:

比如说:一个人A为父类,他的儿子B,妻子C,私生子D(注:D不在他家里)【即父类A,继承子类B和D(D不在同一个工程/程序集),同一个工程/程序集内的另一个类C】

如果我们给A的事情增加修饰符:

  •  public事件,地球人都知道,全公开,随便一个人都知道【任何公有成员可以被外部的类访问】
  •  protected事件,A,B,D知道(A和他的所有儿子知道,即父类和继承其的子类都知道,妻子C不知道)【该类内部和继承类中可以访问。】
  •  private事件,只有A知道(个人隐私,自己的心事?)【只有同一个类中的函数可以访问它的私有成员】
  •  internal事件,A,B,C知道(A家里人都知道,私生子D不知道)【同一个程序集的对象可以访问】【举例新建两个工程,里面添加一个引用关系,被引用的里面建立两个类,此时internal无法访问另一个】
  •  protected internal事件,A,B,C,D都知道,其它人不知道【Protected和internal的并集,符合任意一个即可】【同一程序集及在外部任意继承内部的某些类】

————————————————————————————————————

封装是什么?

封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化封装则使开发者实现所需级别的抽象

C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:

  • public:所有对象都可以访问;
  • private:对象本身在对象内部可以访问;
  • protected:只有该类对象及其子类对象可以访问
  • internal:同一个程序集的对象可以访问;
  • protected internal:访问限于当前程序集或派生自包含类的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值