c#中封装的介绍

c#中封装的介绍

1、什么是封装

​ 封装就是将对象运行所需要的资源封装在程序对象中,并给外界公布接口,这样很复杂的逻辑经过包装之后给其他类使用就很方便,其他类不需要关心你里边的功能是以哪种方式实现的,只要传入需要的参数就可以得到想要的结果。

​ 例如:我们要看电视,只需要按一下开关和换台就可以了,有必要了解电视机内部的结构嘛?制造商为了我们方便使用电视机,把复杂的内部结构全部封装起来,只给我们暴露简单的接口,比如电源开关。至于电视机内部的结构,怎么实现的功能,这我们不需要操心。

​ 对此,就是说需要让用户知道的我们才暴露,不需要让用户知道的全部要隐藏起来,这就是封装。简单来说就是,“你不要告诉我你是以那种方式实现的,只要能做到就可以了”。

2、封装的作用/意义又是什么?

​ (1)提高代码的安全性,就是说我只给外界暴露尽可能少的东西,这样对内部是比较安全的,同时也避免了在外部无意的破环,保护了内部的数据

​ (2)提高代码的复用性。就是说比如在遇到这个问题,我不使用封装,那么解决了这个问题,在下次又遇到的类似的问题还要继续再敲一遍代码吗?所以代码封装以后,我i就再给他一个接口,或者少许的修改一下就可以了

​ (3)“高内聚”,是指类的内部数据操作细节我们自己完成,不允许外部干涉。我们将内部的细节封装,隐藏起来,这样不仅便于后期内部代码的修改,更是提高了可维护性。

​ (4)“低耦合”,是指仅需暴露少量的方法给外部使用,尽量方便外部使用。就是说简化外部调用,便有调用者使用,便于扩展和协作。

3、那么该如何封装?

(1)创建你需要的类:解决方案资源管理器=》添加=》选择类=》设置你需要的创建类的名字=》确定
在这里插入图片描述

(2)在程序主入口创建你需要的对象,注意对象类型和你的类名一直,对象名要有意义

Student stu = new Student("张三",14,"男");//实例化一个Student对象,并传递值给构造函数

(3)在类中创建你需要的字段并进行封装为属性,并且在外部可以进行获取和修改

 class Student
    {
        //定义私有的成员变量来保护数据
        private int age;//年龄
        private string name;//姓名
        private string sex;//性别
        public Student(string name,int age,string sex)//构造函数接收到参数将参数通过封装的属性来给字段初始化变量
        {
           this.Name = name;
           this.Age= age;
           this.Sex = sex;
        }
     //这就是将字段封装为属性   private表示设置属性的值只能在本类中修改,外部没有权限修改,这能获取
     //将 private去掉后外部就可以进行修改
        public int Age { get { return age; } private set { age = value; } }
        public string Name { get { return name; } private set { name = value; } }
        public string Sex { get { return sex; } set { sex = value; } }

​ 此时,用户是无法在外部给属性中的字段赋值的,只能读取/获取

 Console.WriteLine(stu.Name + "" + stu.Age + "" + stu.Sex);//获取对象的属性中的字段的值

​ 这个过程就是封装,只是给外部留有一个接口用来获取或设置。我们的数据都被封装,外界不知道,它只能使用,所以是比较安全的。

4、什么情况下要进行封装

​ 1、保护字段/数据,这个字段/数据我不想让外界用户知道,就使用封装

​ 2、但是可以让外部修改它,这个时候就使用到封装(属性封装)

​ 3、这个字段/数据我要限制用户输入的值,比如说这个字段是sex性别,只能输入男和女,超出了这个范围就没有数据,所以我们要限制用户输入的内容,这个时候就使用封装

​ 4、就是只提供这个数据可以给用户外界使用,但不能修改它,此时就用到的封装

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值