C#入门系列 -- 面向对象之封装

举报
陈言必行 发表于 2022/03/13 10:30:03 2022/03/13
2.2k+ 0 0
【摘要】 概念封装是指隐藏对象的特征和实现细节,仅对外提供公共访问方式。封装的意义:封装为我们减少了代码量,防止代码冗余,不用我们写一些重复的代码,可以把相同的代码封装成一个方法,等我们需要的时候,只需调用这个方法。封装就是好处是当需要修改技术细节的时候,可以不影响调用者与类的交互方式,保证数据完整性。封装的目的是使类型安全、易用。需要的成员才暴露给使用者,不需要的保护起来。封装好处:将改变隔离便于...

概念

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

封装的意义:

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

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

封装好处:

  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;
    }
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。