




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 面向对象程序设计基本概念,李姗姗,本章内容,面向对象程序设计的特点,面向对象程序的结构,3,4,类、对象和消息,2,面向对象语言和方法,10.1 面向对象语言和方法,简单的例子图书馆管理系统 包含reader(读者)对象、librarian(图书管理员)对象、bookshelf(书架)对象等 所有的操作由各对象协作完成 借书 reader对象向librarian对象提出借书请求 librarian对象向bookshelf对象提出查书和取书请求 然后逐步响应,逐步返回,共同完成借书操作,10.1 面向对象语言和方法,结构化程序设计 自顶向下,逐步求精 对小规模的问题非常有效 但无法很好
2、地支持越来越复杂、庞大的系统需求 面向对象方法 直接将问题的求解映射到问题本身上 将问题分解为一系列的实体(对象) 对象之间通过相互协作来完成功能 方便设计,可维护性、可扩充性好,10.1 面向对象语言和方法,六十年代末期Simula 67(面向对象语言的鼻祖) 包含了类和继承的概念 类描述特性相同或相近的一组对象的结构和行为 继承将多个类组织成层次结构,实现数据和操作的共享,10.1 面向对象语言和方法,面向对象语言被分为两大阵营 纯粹的面向对象语言:Smalltalk、Eiffel、Java 混合型面向对象语言:C+和CLOS,10.1 面向对象语言和方法,面向对象方法的一些特性 程序由对
3、象组成 对象之间通过相互协作来完成功能 函数与相关的数据紧密结合 数据可以被隐藏 很容易扩充新的数据和函数,本章内容,面向对象程序设计的特点,面向对象程序的结构,3,4,类、对象和消息,2,面向对象语言和方法,10.2 类、对象和消息,万物皆对象 每个学生、每个班级、每个学校、每个国家、每棵树、每本书、每部汽车具体的实体 “张三”、“李四”都是对象,但“人”不是 “人”不是具体的实体,是类,是抽象概念 类是某些对象共同特征的表示 类是创建对象的模板,对象是类的实例,10.2 类、对象和消息,如何区分类和对象以“人”和“张三”为例 “人”描述了所有人(包括“张三” )都具有的属性和行为,如有姓名
4、、身高、体重,有鼻子、眼睛、四肢,能交流、能思维等等 类(“人”)描述的概念是抽象的 “人”的姓名是什么? “人”的身高是什么? 对象(“张三”)是具体的 “张三”的姓名是“张三” “张三”的身高是185CM,10.2 类、对象和消息,还有哪些类和对象的例子 教室305-206教室 国家中国 学校南方医科大学 ,10.2 类、对象和消息,面向对象程序设计的一般步骤 分析实际问题,分辨并抽取其中的类和对象 设计相应的类,并根据这些类创建各种对象 协调这些对象完成程序功能(消息),例子:读者类Reader,class Reader public: Reader();/构造函数 int regist
5、ration(char *name);/注册 int borrowBook(int bookNo);/借书 int returnBook(int bookNo);/还书 private: char *name;/姓名 char *certifNo;/借书证号 ;,类的定义以关键字class开头,类名,类名后面花括号扩起来 的部分是类的体,类的定义以分号结尾,10.2 类、对象和消息,内容说明 类的定义可以包含数据和函数 关键字public后面定义了类的公有成员 类Reader有四个公有成员函数:Reader、registration(注册)、borrowBook(借书)和returnBook(
6、还书) 关键字private后面定义的是类的私有成员 类Reader包含两个私有数据成员,姓名(name)和借书证号(certifNo) 数据成员和成员函数都可以是私有的或公有的,10.2 类、对象和消息,自定义类是一种新的自定义类型,可以声明变量、指针、数组等 对象各自拥有自己的数据空间,互不干扰 Reader zhang;/声明Reader类的对象zhang Reader reader1000;/声明Reader类的数组 Reader *rptr = /声明Reader类型的引用,10.2 类、对象和消息,对象可以响应消息 调用对象的成员函数想当于向对象发消息 对象zhang可以响应三种消
7、息 registration(注册)、borrowBook(借书)和returnBook(还书) 要对象zhang借书可以向对象zhang发borrowBook消息 对象zhang则通过执行成员borrowBook来响应消息,10.2 类、对象和消息,C+将“向对象发消息”处理成“调用对象的某个成员函数” 调用对象zhang的成员函数borrowBook zhang.borrowBook(12); rptborrowBook(12); ref.borrowBook(12);,10.2 类、对象和消息,消息机制的特性 同一对象可以接收不同的消息,并有不同的响应,如对象zhang可接收注册、借书、
8、还书三种消息 对象之间是平等的,每个对象都可以向其它对象发消息,让其为自己服务,本章内容,面向对象程序设计的特点,面向对象程序的结构,3,4,类、对象和消息,2,面向对象语言和方法,10.3 面向对象程序设计特点,抽象和封装 抽象提取和表现事物的核心特性,不描述背景细节 类的定义是对实体的抽象和描述(定义类Reader时,要描述哪些特性?) 封装把数据及与数据相关的操作组织在对象中 结构清晰,对象之间的独立性好,可扩充性和可维护性好,10.3 面向对象程序设计特点,数据隐藏和访问机制 对象对内部数据提供了不同级别的保护 对象私有的代码和数据不能被外界直接访问 外界只能访问公有数据,通过公有成员
9、函数和对象交互 有效地保护数据,提高程序的可维护性,10.3 面向对象程序设计特点,继承 继承允许从现有的类(基类)建立新类(派生类) 派生类继承了基类的属性和行为 派生类可以修改和扩充这些属性和行为 派生类可以增加新的数据成员和函数成员 派生类对象被认为是基类的对象方便统一管理 提高软件开发的效率和软件质量,10.3 面向对象程序设计特点,多态性 程序设计中很多类可以通过继承的关系构成树形结构 多态性使程序员可以通过统一的接口操纵这些类的对象 对于同一条函数调用语句不同的对象会执行不同的操作,10.3 面向对象程序设计特点,面向对象技术的优点 易于建模 易于维护 可扩展性好 代码重用,本章内
10、容,面向对象程序设计的特点,面向对象程序的结构,3,4,类、对象和消息,2,面向对象语言和方法,10.4 面向对象程序的结构,面向对象程序仍然需要一个入口:main函数 面向对象程序设计的任务 设计类 以类为模板创建不同的对象 通过消息机制协调这些对象共同工作,例子1:音像资料类Media,#include #include using namespace std; #define ISAUDIO 1 #define ISVIDEO 2 class Media public: Media(char *n) name = new charstrlen(n)+1; strcpy(name, n); type = 0; ,Media() delete name; void setType(int t) type = t; void showInfo() coutname is a ; if(type = ISAUDIO) coutaudio disc.endl; else if(type = ISVIDEO) coutvideo disc.endl; else coutunclassified disc.endl; ,private: char *name; int type; ; int main() Media discDion(The Colou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚财产分割协议书范本含知识产权转让
- 药厂药渣处置方案
- 国际品牌代理分销权授权协议书
- 部门激励方案奖罚制度
- 钢铁企业仓储仓单质押融资担保合同
- 房贷合同编号查询及贷款流程规范合同
- 水产养殖管理方案
- 党课宣传思想课件
- 炼钢企业原料采购方案
- 视听语言考试题及答案
- 意外险产品组合策略分析-洞察阐释
- 政府采购政策培训课件
- 浙江省金华市十校2024-2025学年高二下学期期末考试英语试题
- 2025年上海市(秋季)高考语文真题详解
- 银行综合服务方案(3篇)
- 2024-2025学年下学期高一数学人教A版期末必刷常考题之频率与概率
- 设备易损配件管理制度
- 青霉素过敏反应的急救
- 2025-2030中国铝业发展状况与投资战略研究报告
- 国外警用枪支管理制度
- 2025年国家医疗器械抽检品种检验方案
评论
0/150
提交评论