这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战
概念
封装是指隐藏对象的特征和实现细节,仅对外提供公共访问方式。
封装的意义:
封装为我们减少了代码量,防止代码冗余,不用我们写一些重复的代码,可以把相同的代码封装成一个方法,等我们需要的时候,只需调用这个方法。封装就是好处是当需要修改技术细节的时候,可以不影响调用者与类的交互方式,保证数据完整性。
封装的目的是使类型安全、易用。需要的成员才暴露给使用者,不需要的保护起来。
封装好处:
- 将改变隔离
- 便于使用
- 提高重用性
- 提高安全性
封装原则:
-
将不需要对外提供的内容都隐藏起来。
-
把字段都隐藏,提供公共属性对其访问。
抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。
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;
}
}