




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,面向对象设计思想,2,主要内容,面向过程的设计方法 面向对象的设计方法 OOP的基本特点 c+中的类,面向对象(OO)开发 类与对象关系的图形标识(UML简介),3,结构化程序设计诞生于20世纪60年代 结构化程序设计的基本思想是采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构。 结构化程序设计方法将解决问题的重点放在如何实现过程的细节方面,把数据和对数据的操作函数截然分开,以数据结构为核心,围绕着功能实现或操作流程来设计程序。,面向过程的设计方法(1/2),4,面向过程的设计方法(2/2),重点: 如何实现细节过程,将数据与函数分开。 形式: 主模块+若干个子模块(main()+
2、子函数)。 特点: 自顶向下,逐步求精功能分解。 缺点: 效率低,程序的可重用性差。,5,面向对象的设计方法(1/4),目的: 实现软件设计的产业化。 观点: 自然界是由实体(对象)所组成。 程序设计方法: 使用面向对象的观点来描述模仿并处理现实问题。 要求: 高度概括、分类、和抽象。,6,面向对象的设计方法(2/4),面向对象程序设计认为,现实世界是由一系列彼此相关并且能够互相通信的实体组成。 实体对象 对象的共性的抽象描述类 一个公司的人员由它的全体员工组成,员工之间存在合作关系、上下级关系等工作关系,员工之间通过口头或书面语言进行交流和资源共享。 员工对象 员工组成了一类具有共性的人群本
3、公司雇员,7,面向对象的设计方法(3/4),每个对象都具有自己的属性和行为,整个程序是由一系列相互作用的对象构成的,对象之间的交互通过发送消息来实现。 在一个公司里 每个员工都有自己的姓名、编号、职务、薪资数额等属性(独一无二)对象的属性 每一个人都有完成自己工作职责的能力对象的行为,8,面向对象的设计方法(4/4),用面向对象的观点和方法设计程序,属性和行为都被很好的封装在对象中,对数据的访问权限可以得到有效的控制。 对象向外界提供必要的外部接口,而将实现的细节隐藏起来 员工的特征属性只有本人通过合法途径进行修改,其他人无权修改。(公开) 薪资数额在一定程度上是保密的,只有它的上级和财务部门
4、的相关人员能够知道,其他人无权过问。,9,面向对象程序设计(OOP)的基本特点,抽象 封装 继承与派生 多态,10,抽象,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。 先注意问题的本质及描述,其次是实现过程或细节。 数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。 代码抽象:描述某类对象的共有的行为特征或具有的功能。 抽象的实现:通过类的声明。,11,抽象实例钟表,数据抽象: int Hour, int Minute, int Second 代码抽象: SetTime(), ShowTime(),12,抽象实例钟表类,class Clock publ
5、ic: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); private: int Hour,Minute,Second; ;,13,抽象实例人,数据抽象: char *name,char *gender,int age,int id 代码抽象: 生物属性角度:GetCloth(), Eat(), Step(), 社会属性角度:Work(), Promote() ,14,封装,将抽象出的数据成员、代码成员相结合,将它们视为一个整体。 目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访
6、问权限,来使用类的成员。 实现封装:类声明中的,15,封装,实例: class Clock public: void SetTime(int NewH,int NewM, int NewS); void ShowTime(); private: int Hour,Minute,Second; ;,特定的访问权限,16,继承与派生,对象之间是有联系的 这是支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。 轮船:客轮、货轮 人类的遗传 实现:声明派生类 继承和派生:实现了代码的可扩充性和可重用性,17,多态性,多态:同一名称,不同的功能实现方式。 目的:达到行为标识统
7、一,减少程序中标识符的个数。 实现:重载函数和虚函数 两个例子 打球(打篮球、打排球、打羽毛球) 呼吸(一般动物的呼吸和鱼的吐泡泡的呼吸方式),18,c+中的类,类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。 利用类可以实现数据的封装、隐藏、继承与派生。 利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。,19,类的声明形式,类是一种用户自定义类型,声明形式: class 类名称 public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员 ,20,公有类型成员,在关键字pu
8、blic后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。,21,私有类型成员,在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。 如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。,22,保护类型,与private类似,其差别表现在继承与派生时对派生类的影响不同。,23,类的成员,class Clock public: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); private: int Hour, Minute, Second; ;,成
9、员数据,成员函数,void Clock : SetTime(int NewH, int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS; void Clock : ShowTime() coutHour:Minute:Second; ,19,25,成员数据,与一般的变量声明相同,但需要将它放在类的声明体中。,26,成员函数,在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。 允许声明重载函数和带默认形参值的函数,27,对象,类的对象是该类的某一特定实体,即类类型的变量。
10、声明形式: 类名 对象名; 例: Clock myClock;,28,类中成员的访问方式,类中成员互访 直接使用成员名 类外访问 使用“对象名.成员名”方式访问 public 属性的成员,29,面向对象开发,一种以基于真实世界中以及程序中的抽象为基础思考的软件方式。 面向对象开发的本质是识别和组织应用领域中的概念;而不是以一种编程语言最终表示这些概念。 好处:帮助规划人员、开发者和客户清晰地表达抽象的概念,并将这些概念互相传达。,30,三种模型,OO开发使用三种模型从不同的视角来描述系统 类模型描述了系统内部对象及其关系的静态结构 类图中的结点是类;弧表示类间的关系 状态模型描述了对象随着时间
11、发生变化的那些方面 结点是状态,弧是由事件引发的状态间的转移 交互模型描述系统中的对象如何协作以完成更为宽泛的任务 用例:关注系统的功能 顺序图:显示交互的对象以及发生交互的时间顺序 活动图:描述重要的处理步骤,31,UML简介,UML语言是一种可视化的的面向对象建模语言。 UML有三个基本的部分 事物(Things)UML中重要的组成部分,在模型中属于最静态的部分,代表概念上的或物理上的元素 关系(Relationships)关系把事物紧密联系在一起 图(Diagrams)图是很多有相互相关的事物的组,32,UML中有4种类型的事物,结构事物(Structural things) 动作事物(
12、Behavioral things) 分组事物(Grouping things) 注释事物(Annotational things),33,UML中的关系,依赖(Dependencies) 关联(Association) 泛化(generalization) 实现(realuzation),34,UML中的9种图,类图(class diagram) 对象图(class diagram) 用例图(Use case diagram) 顺序图(Sequence diagram) 协作图(Collaboration diagram) 状态图(Statechart diagram) 活动图(Activity diagram) 组件图(Compomnent diagram) 实施图(Deployment diagram),35,类图,举例:Clock类的完整表示 Clock类的简洁表示,36,对象图,37,类与对象关系的图形标识,依赖关系 图中的“类A”是源,“类B”是目标,表示“类A”使用了“类B”,或称“类A”依赖“类B”,38,类与对象关系的图形标识,作用关系关联 图中的“重数A”决定了类B的每个对象与类A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆师范大学《实验室安全与法规》2023-2024学年第二学期期末试卷
- 重庆市主城区七校联考2025年高三教学质量检测试题试卷(二)物理试题含解析
- 公共交通运营服务收费标准制度
- 第18课 清朝的边疆治理 教案2024-2025学年七年级历史下册新课标
- 内圆形吊顶施工方案
- 护坡植草施工方案
- 路基修复夜间施工方案
- 工程资料与施工方案
- 汽车隔音施工方案范本
- 2025年搞笑考试面试试题及答案
- 2024年GINA哮喘防治指南修订解读课件
- 木地板合同范本
- 2024中交二航局分包合同范本
- 2024年社区工作者考试必背1000题题库必背(必刷)
- 教育改革与发展
- 《形体训练》课件-勾绷脚训练
- 医疗器械(耗材)项目投标服务实施投标方案(技术方案)
- 监控系统维护保养方案
- 2023年国家广播电视总局无线电台管理局考试真题及答案
- 房屋修缮工程技术规程 DG-TJ08-207-2008
- 家庭教育的发展与变革
评论
0/150
提交评论