写点什么

C#入门系列 (二十) -- 面向对象之封装

作者:陈言必行
  • 2022 年 6 月 20 日
  • 本文字数:805 字

    阅读完需:约 3 分钟

概念

封装是指隐藏对象的特征和实现细节,仅对外提供公共访问方式。

封装的意义:

封装为我们减少了代码量,防止代码冗余,不用我们写一些重复的代码,可以把相同的代码封装成一个方法,等我们需要的时候,只需调用这个方法。封装就是好处是当需要修改技术细节的时候,可以不影响调用者与类的交互方式,保证数据完整性。

封装的目的是使类型安全、易用。需要的成员才暴露给使用者,不需要的保护起来。

封装好处:

  1. 将改变隔离

  2. 便于使用

  3. 提高重用性

  4. 提高安全性

封装原则:

  1. 将不需要对外提供的内容都隐藏起来。

  2. 把字段都隐藏,提供公共属性对其访问。

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

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


访问修饰符

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

  • public:所有对象都可以访问;

  • private:对象本身在对象内部可以访问;



  • protected:只有该类对象及其子类对象可以访问



  • internal:同一个程序集的对象可以访问;

  • protected internal:访问限于当前程序集或派生自包含类的类型。

代码示例:


using System;
namespace VSProject
{
class Program
{
static void Main(string[] args)
{
Test t = new Test();
int a = t.a;
int b = t.B;
int c = t.C;
int d = t.D;
Console.ReadLine();
}
}
class Test
{
// 私有数据成员 -- 外部不能直接访问
private int a;
// 公开数据成员 -- 外部可通过实例访问
public int B;
// 受保护的数据成员 -- 外部不能直接访问,但其子类可以访问
protected int C;
// 内部数据成员 -- 程序集内可以访问
internal int D;
}
}
复制代码


发布于: 刚刚阅读数: 3
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(二十) -- 面向对象之封装_C#_陈言必行_InfoQ写作社区