第3章 面向对象系统的特性

第3章 面向对象系统的特性

ID:37780447

大小:42.00 KB

页数:4页

时间:2019-05-31

第3章 面向对象系统的特性_第1页
第3章 面向对象系统的特性_第2页
第3章 面向对象系统的特性_第3页
第3章 面向对象系统的特性_第4页
资源描述:

《第3章 面向对象系统的特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章面向对象系统的特性面向对象系统最突出的特性就是封装性、继承性和多态性。3.1封装性1、封装的定义将一个数据和与这些数据有关的操作集合放在一起,形成一个能动的实体——对象,用户不必知道对象行为的实现细节,只需根据对象提供的外部特性接口访问对象即可。封装应该具有下面几个条件:l具有一个清楚的边界,对象的所有私有数据、内部程序(成员函数)细节都被固定在这个边界内。l具有一个接口,这个接口描述了对象之间的相互作用、请求和响应,它就是消息。l对象内部的实现代码受到封装壳的保护,其它对象不能直接修改本对象所拥有的数据和代码。2、协议l一个对

2、象对外服务的说明l由一个对象能够接受并且愿意接受的所有信息构成的对外接口l请求对象进行操作的唯一途径l外界能且只能根据该对象发送协议中所提供的消息,请求该对象服务3、面向对象系统的封装性对象协议/服务用户、应用程序员服务的具体实现l信息隐藏l抽象数据类型3.2继承性1、类间继承关系继承表达对象之间的相交关系——某类对象可以继承另外一类对象的特征和能力,类间的关系:整体和部分、一般和特殊昆虫有翅类无翅类蛾子蝴蝶苍蝇。。。若类间具有继承关系,则它们之间应具有下列几个特性:(1)类间具有共享特征(数据和代码共享)(2)类间具有细微的差别和新

3、增部分(3)类间具有层次结构2、继承的作用(1)减少代码冗余(2)–通过协调性减少相互之间的接口和界面lc++中派生类的定义classA{具体地讲,若类B继承类A时,则居于B中的对象便具有类A的一切性质(数据属性)相功能(操作)。称被继承类A为基类或父类,或超类;而称继承类B为A的派生类或子类。因此,要构造一个新类B,只需去继承—个与之有共同特征的基类A.再描述与基类不同的少量特征(即增加一些新的数据成员和成员函数)。于是.类B便由继承来的和新添加的两部分组成。//}classB:publicA{//….}classC:publicB

4、{//….}3、继承的分类(1)从继承源上分:单继承与多继承(2)从继承内容上分:取代继承、包含继承、受限继承、特化继承1、继承与委托的关系(1)委托:在面向对象系统中,每个操作元素都是一个对象,为了减少一个操作的实现代码,尽量使用向其它对象发送消息而不再重写代码。(2)继承与委托的相同点:节省代码(3)继承与委托性质不同继承是静态关系委托既可以静态定义也可以动态定义2、面向对象系统的继承性(1)优点清晰体现相关类间的层次结构关系减小代码和数据冗余,提高程序可重用性增强一致性,减少模块间的接口和界面自动传播代码在一般类的基础上构造、建

5、立和扩充新类(2)继承性的体现对操作的继承——行为特性的继承对数据内容的继承——结构特性的继承3.3多态性多态性描述的是同一个消息可以根据发送消息对象的不同采用不同的行为方式。多态性的实现是通过重载、虚函数、抽象类来实现的。1、重载的概念(1)函数重载:函数名相同,参数不同。classnumber{inti;floatx;char*s1;public:intmax(inta){returna>i?a:i;}floatmax(floatb){returnb>x?b:x;}char*max(char*c){returnstrcmp(c,s

6、1)>0?c:s1;}//..}(1)运算符重载2、虚函数的概念虚函数:在一个类等级中使用相同函数的多个版本,方式有如下两种:(1)在基类中声明(virtual)(2)–在派生类中重新给出定义运行时的多态性:在运行时决定使用哪一个特定的版本(基类的/派生类的,取决于发送此消息的对象是属于哪一类的)3、抽象类的概念将许多有关类组织在一起,提供一个公共的基类——刻画公共行为的特征,通过继承机制传递给它的派生类。抽象类只描述与这类对象有关的协议和协议有关部分消息的部分实现,完整的实现留给它的派生类来实现。派生类是不能创建具体对象的类,不能参

7、数实例,只能通过它的派生类来产生对象。4、面向对象系统的多态性(1)不同的对象收到相同的消息时产生不同的动作(2)C++支持两种多态性编译时的多态性:重载运行时的多态性:虚函数1、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。