面向对象三大基本特征之一

您所在的位置:网站首页 属性隐藏是什么意思 面向对象三大基本特征之一

面向对象三大基本特征之一

2024-07-13 05:07| 来源: 网络整理| 查看: 265

文章目录 封装封装的定义封装的好处定义属性如何定义属性?为什么要使用属性?使用属性进行封装的步骤?如何使用属性?属性的分类:

封装 封装的定义

封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。举个例子,比如洗衣机各个组件被封装起来,只能通过按钮来操作它们,这种隐藏内部实现,对外提供操作接口的方式,我们称之为封装。

封装的好处

封装可以让使用者不用担心对象内部具体实现,同时又可以确保使用者无法更改内部代码。它可以让代码更易于理解和维护,也加强了代码的安全性。

定义属性 如何定义属性?

C#中属性的作用是提供灵活的机制来读写私有字段的值。C#中属性就是对字段的封装,通过对字段的封装,可以阻止不合法数据的录入,从而保护内部数据的安全,提高字段访问的安全性和灵活性。

C#中的属性结合了字段和方法的优点,对于对象的使用者,调用属性的方式和调用字段的方式相同;

对于类的使用者,属性是两个类似于方法的代码块,分别是get访问器(访问)和set访问器(赋值)。

为什么要使用属性?

在代码中直接对类进行访问,存在很大的缺陷,无法保证数据的合理性,此时我们可以使用属性对字段进行封装。

我们可以举个例子来让大家看一下。

新建一个控制台应用程序,然后添加一个Customer类。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FengZhuang { public class Customer //publc设置为公开的类 { public string name; //定义姓名 public int age; //定义年龄 public string address; //定义地址 } }

然后在Program类里面实例化一个customer对象,并对Customer类的字段进行赋值。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FengZhuang { public class Program { static void Main(string[] args) { Customer customer = new Customer(); //实例化一个customer对象 customer.name = "张三"; customer.age = 200; customer.address = "北京"; //打印客户信息 Console.WriteLine("客户信息:"); Console.WriteLine("姓名:" + customer.name); Console.WriteLine("年龄:" + customer.age+"岁"); Console.WriteLine("地址:" + customer.address); } } }

运行结果如图所示,年龄为200岁,这样的数据显然是不合理的。 在这里插入图片描述

所以当我们直接对一个类中的字段进行直接访问时,就会存在这一问题。如何避免这样不合理的数据录入?可以使用属性对这样的字段进行封装。

使用属性进行封装的步骤?

1、私有化字段

2、定义属性,并题库set get访问器对字段进行访问

3、在set get访问器中添加代码保证数据的安全

如何使用属性?

下面通过一个案例来演示一下如何在程序中使用属性。

新建一个Customer类

namespace FengZhuang { public class Customer //publc设置为公开的类 { public string name; //定义姓名字段 private int age; //定义年龄字段 //字段首字母小写,属性首字母大写 //封装快捷键:选中需要封装的字段,然后按Ctrl+R+E public int Age //定义Age属性 { get //get访问器用来获取字段的值 { return age; } set //set访问器,对当前字段进行赋值 { //限定age的值 if (value >=0 && value


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3