封装

来自计算思维百科
跳转至: 导航搜索
封装.jpg

我们知道一个对象往往具有很多属性以及可以进行操作,例如,游戏中的人物有各种属性,例如性别、攻击能力、暗器等,游戏人物可以进行行走、攻击等操作。封装这个概念的想法就是把一个对象的描述捆绑在一起,从外面看,你只能通过接口了解对象的信息,而

对象的属性和实现细节都被隐藏了,这样做的优点是你只需要了解接口就可以获取有效信息,而不需要关心细节。就比如说,你有一个游戏机,你通过游戏杆上有限的按键就可以操纵游戏人物,而这个游戏人物是如何实现的,你是不需要了解的,这个游戏人物就是被封装的对象。

基本概念

在面向对象编程中,封装(encapsulation)是将对象运行所需的资源封装在程序对象中——基本上,是方法和数据。对象是“公布其接口”。其他附加到这些接口上的对象不需要关心对象实现的方法即可使用这个对象。这个概念就是“不要告诉我你是怎么做的,只要做就可以了。”

封装的目

增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。

封装的原则

1把尽可能多的东西藏起来.对外提供简捷的接口。

2把所有的属性藏起来。

使用方法及步骤

封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

应用案例

应用1-

案例:

叮当猫这个动画人物有一个神奇的口袋,封装就像叮当猫的口袋,外人永远都不知道它的口袋里到底有什么东西,有多少东西,而这些东西被放在了叮当猫的口袋中,就相当于被封装了起来。叮当猫给我们提供了一个接口,外人可以利用这个接口去完成一些使用这些东西的公共动作,但是外人并不是直接去它的口袋中拿取这些东西来使用,而是叮当猫本身去使用这种东西来完成你想要做的动作。我们可以看出封装对于数据(叮当猫的宝物)来说是非常具有安全性的,其他人无权利去使用与修改甚至是拷贝,这是面向对象的一个非常重要的特性。

应用2-

案例:

在道德意义下,封装就相当于每个人保守自己的隐私,外人没有权利也没有办法通过任何非法途径去了解你的隐私,而我们每个人都会提供一些接口,这些接口包含的动作就是在法律的调用时我们允许自己的隐私(或者是秘密)被访问,这就是访问权限的差别,否则只有我们自己主动的调用这些隐私,这些隐私才会被使用。

可以体现的计算思维

封装体现了抽象的计算思维,将一些数据和行为(函数)被装进了密码箱中,只有自己和知道密码的人(有权限的对象)才可以对密码箱中的数据或者函数进行调用,因此,这是一种抽象的计算思维。