封装
2015-09-17 13:23
225 查看
在面向对象编程中,封装(encapsulation)是将对象运行所需的资源封装在程序对象中——基本上,是方法和数据。对象是“公布其接口”。其他附加到这些接口上的对象不需要关心对象实现的方法即可使用这个对象。这个概念就是“不要告诉我你是怎么做的,只要做就可以了。”对象可以看作是一个自我包含的原子。对象接口包括了公共的方法和初始化数据。[1]
封装 (encapsulation)
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
封装途径
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
封装在网络编程里面的意思, 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络,其中每一层对收到的数据都要增加一些首部。
1把尽可能多的东西藏起来.对外提供简捷的接口。
2把所有的属性藏起来。
例如,在抽象的基础上,我们可以将时钟的数据和功能封装起来,构成一个时钟类。
按c++的语法,时钟类的声明如下:
class Clock
{
public: //共有成员,外部接口
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
private: //私有成员,外部无法访问
int Hour,Minute,Second;
}
可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。
程序编辑
封装 (encapsulation)隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
封装途径
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
封装在网络编程里面的意思, 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络,其中每一层对收到的数据都要增加一些首部。
原则编辑
1把尽可能多的东西藏起来.对外提供简捷的接口。2把所有的属性藏起来。
例如,在抽象的基础上,我们可以将时钟的数据和功能封装起来,构成一个时钟类。
按c++的语法,时钟类的声明如下:
class Clock
{
public: //共有成员,外部接口
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
private: //私有成员,外部无法访问
int Hour,Minute,Second;
}
技巧编辑
可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。
相关文章推荐
- win8系统如何可以查看无线网络流量?win8查看无线网络流量的方法
- unity3d实现视频播放
- memset栈空间出现段错误
- c语言中.h文件的作用
- 对弹出键盘的监听
- memset栈空间出现段错误
- Install lp_solver on Mac 32/64-bit (Run it with Java ILP from Eclipse)
- centos 6u5 搭建nginx+php+mysql环境。
- 面向对象的三个重要特征------封装、继承、多态
- 话说C语言const用法
- Groovy的闭包
- 创建多线程的两种方式
- 排序算法
- 安全通信 QSslSocket
- IndentationError: expected an indented block
- 【Android】DownloadManager的使用
- 华为oj【整数排序】
- Codeforces Round #320 (Div. 2) C - A Problem about Polyline
- Codeforces Round #320 (Div. 2) C - A Problem about Polyline
- 二叉树的深度优先,广度优先,以及层次遍历算法