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

205 阅读2分钟

这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战

概念

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

封装的意义:

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

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

封装好处:

  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;
    }
}