- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03面向对象编程
面向对象程序设计与C++ 第三章 面向对象编程 教 师: 王 涛 电 话: 办公室: 九教北525 E-mail: twang@bjtu.edu.cn 1. 面向过程与面向对象 面向过程语言(C, pascal) 程序由模块(module)组成, 采用自顶向下设计(top-down design)方法 基于对象语言(VB) 程序由类(class)构成,基本特性为封装性:将相关联的数据和处理过程封装成类 面向对象语言(C++, Java) 程序由类(class)构成,基本特征为封装性、继承性和多态性. 面向过程语言以过程(procedure)为基本模块,若干相关模块组成大模块. 面向过程程序设计采用自顶向下设计(top-down design):将复杂的问题分解成若子问题,子问题可以再进行分解,直到各子问题都比较容易解决. 生产一辆汽车,可将整个生产过程分解为: 生产底盘 生产引擎 生产动力传动系统 组装 检测配件和整车 面向过程程序设计 软件设计是用计算机语言对现实世界的抽象和模拟. 面向对象方法追求软件系统对现实世界的直接模拟,使设计更加贴近现实世界. 对象(object)是一个系统的基本组成元素. 类(class)是同一类型所有对象的集合抽象,一个类就是一种抽象数据类型. 面向对象程序设计 现实世界每个具体事务(客观存在)都可以看作是一个对象. 一个人,一台电脑 一场球赛,一个班级 每个对象都具有自己的特性(属性). 人的姓名,年龄,身高等. 电脑的品牌,价格等 每个对象都具有自己的行为. 人吃放,学习等 电脑的开机,关机等 面向对象程序设计 对象 = 特性(属性) + 行为 特定对象之间存在某种关系 一个班级包含若干学生(belong to) 一个学生拥有一台或多台电脑(has a) (一个)学生是(一个)人(is a) 对象之间相互作用 老师让学生交作业 学生启动机器 面向对象程序设计 面向对象程序设计 类是一种抽象数据类型,可以为一个类定义成员变量(member variable)来表示该类所有对象共有的属性,定义成员函数(member function)表示共有的行为。 class Humen { char name[64]; // 成员变量 int age; void sleep(); // 成员函数 void eat(); }; 2. 类的封装性 面向过程编程中,数据与处理数据的函数相互独立,处理模式为向函数传递参数并获得返回值. char str[64] = “C++ programming”; int len = strlen(str); 面向对象编程中,将数据与处理数据的函数封装成一个整体 — 类. class string { private: char str[64]; public: int GetLen(); }; string str; int len = str.GetLen(); 类通常将接口(函数集合)提供给用户,而将具体实现细节进行隐藏. C++中使用public和private关键字来进行访问控制, public用于提供类的接口, private隐藏类的实现细节. class student { private: char StudentID [64]; // 学号 void Eat(); public: char* GetStudentID(); void Study(); }; 信息隐藏 当一个数据类型仅暴露其公有接口, 而将其私有实现隐藏, 则称这个数据类型是抽象的. C++中的一个类就是一种抽象数据类型,将类所提供的功能以公有成员函数的形式封装,而将具体实现隐藏. 抽象数据类型使得用户不需要了解具体实现细节,可以提高程序的可靠性和健壮性. 示例程序:03_01. 抽象数据类型 面向对象系统中, 对象之间通过消息传递来进行协作. 一个完整的消息包含: 消息名和消息参数 消息的发送者和接收者 C++语言中,消息的传递体现为类成员函数的调用. int main() { ofstream out; out.open(“test.dat”); return 0; } 3.消息传递 面向对象三大基本特性: 封装性 继承性 多态性 引入继承性和多态性, 可描述特定类之间的一种包含关系,使之形成层次结构。 4. 继承与多态 继承性 继承性是描述了两种抽象概念(类)一种包含关系. 类B继承类A, 一般可以表示为“ B is a type of A”. A称为基类或父类, B称为子类或派生类. 在面向对象系统中,引入继承
文档评论(0)