封装及set跟get方法理解

封装及set跟get方法理解


本文章使用 C# 语言解释

1、封装理解

封装的含义: “把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问,避免数据的非法访问,保证数据的安全性。 而安全性的最大的特点就是增加其逻辑操作,对数据进行限制。

1.1、为什么要封装
  • 可以保护或防止代码(数据)被我们无意中破坏。
  • 我们在使用的时候只需要了解如何通过类的接口使用类,而不用关心类的内部数据结构和数据组织方法
  • 面向对象程序设计一直追求高内聚低耦合,用封装恰恰可以减少耦合
1.2、属性私有化

封装首先需要属性私有化,使用 private 访问控制权限修饰;如下:

		//属性私有化
		private string name; 

private 修饰的方法或属性只能在本类使用

如果一个属性只能在本类使用那它在面向对象编程语言中又有什么意义呢,所以呢,我们不仅仅需要 属性私有化 我们还需要 对外提供 setget 方法用来间接的 修改私有属性 以及 访问私有属性

2、set 跟 get 方法

C# 当中 setget 方法可以这样写;如下:

		//对外开放入口
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

封装属性 必须 对外提供 setget 方法,用来给其他类访问,应当养成一个习惯

2.1、get 方法

首先来看 get 方法的源码;如下:

//内部get 方法
get { return this.name; }

访问 get 方法时会直接给你 return 返回 本类的私有属性;

所以可以理解成 get 方法是用来读私有属性的内容的

2.2、set 方法

首先来看 set 方法的源码;如下:

//内部set 方法
set { this.name = value; }

这里的 value 代表的是调用的使用传进来的值

通过上面代码可以看出是把 我们调用的时候传进来的值(value) 赋给了私用的属性,由此可以改变私有属性的值

所以可以理解成 set 方法是用来修改私有属性的内容的

2.3、set 及 get

总的来说就一句话:

get 读 set 改

如何使用 setget 方法 读值改值。如下:

			//创建对象		
			Program program = new Program();
            //set 方法修改值
            program.Name = "张三";
            //get 方法读取值
            Console.WriteLine(program.Name);

如上代码,我们只需要 用 对象名.方法名 去使用 或者 去修改 ,就可以调用对应的 get 以及 set 方法了

3、理解封装

请认真看下面我随便编的一个小故事:

有一天,上帝为了保护你的安全关闭了你人生用来让别人来跟你玩的 一扇门 ,然后看你一个人在一个封闭的房间里面,没有人看得见你,没有人知道你,没有人认识你,没有人可以来改变你,上帝就觉得这样子不行,在这样下去你就要被世界给遗忘了,然后就给你 开了两扇窗,一扇窗用来给外面的人来跟你说话,跟你讨论一下外面的世界,而另外的一扇窗呢,就用来给你给外面的世界写信的,好让世界知道还有你,并且你是什么样子的一个人。

故事很烂 希望能理解

1、故事中的上帝为了你的安全关闭了你的一扇门指的就是,把属性私有化了(private),保护数据的安全性。

2、故事中的两扇窗,一扇是 get 方法 ,一扇是 set 方法

3、set 方法用来让别人来跟你说话,来改变房间中的你,理解为 改变私有值

4、get 方法用来让你给外面的世界写信,让世界知道你,理解为 对外返回私有属性的值


如果对你有用可以点个赞,或者点个关注,收藏,嘻嘻!🤭

如有错误请及时指出

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值