面向对象编程.pptx

上传人:莉*** 文档编号:74456871 上传时间:2023-02-26 格式:PPTX 页数:25 大小:112.95KB
返回 下载 相关 举报
面向对象编程.pptx_第1页
第1页 / 共25页
面向对象编程.pptx_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《面向对象编程.pptx》由会员分享,可在线阅读,更多相关《面向对象编程.pptx(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、会计学1面向对象编程面向对象编程n n面向过程语言以面向过程语言以过程过程(procedure)(procedure)为基本模块为基本模块,若干相若干相关模块组成大模块关模块组成大模块.n n面向过程程序设计采用面向过程程序设计采用自顶向下设计自顶向下设计(top-down(top-down design)design):将复杂的问题分解成若子问题:将复杂的问题分解成若子问题,子问题可以子问题可以再进行分解再进行分解,直到各子问题都比较容易解决直到各子问题都比较容易解决.n n生产一辆汽车,可将整个生产过程分解为:生产一辆汽车,可将整个生产过程分解为:n n生产底盘生产底盘n n生产引擎生产引

2、擎n n生产动力传动系统生产动力传动系统n n组装组装n n检测配件和整车检测配件和整车面向过程程序设计面向过程程序设计第1页/共25页n n软件设计是用计算机语言对现实世界的抽象软件设计是用计算机语言对现实世界的抽象和模拟和模拟.n n面向对象方法追求软件系统对现实世界的直面向对象方法追求软件系统对现实世界的直接模拟接模拟,使设计更加贴近现实世界使设计更加贴近现实世界.n n对象对象(object)(object)是一个系统的基本组成元素是一个系统的基本组成元素.n n类类(class)(class)是同一类型所有对象的集合抽象,是同一类型所有对象的集合抽象,一个类就是一种抽象数据类型一个类

3、就是一种抽象数据类型.面向对象程序设计面向对象程序设计第2页/共25页n n现实世界每个具体事务现实世界每个具体事务(客观存在客观存在)都可以看都可以看作是一个对象作是一个对象.n n一个人,一台电脑一个人,一台电脑n n一场球赛,一个班级一场球赛,一个班级n n每个对象都具有自己的特性每个对象都具有自己的特性(属性属性).).n n人的姓名人的姓名,年龄年龄,身高等身高等.n n电脑的品牌电脑的品牌,价格等价格等n n每个对象都具有自己的行为每个对象都具有自己的行为.n n人吃放人吃放,学习等学习等n n电脑的开机电脑的开机,关机等关机等面向对象程序设计面向对象程序设计第3页/共25页n n

4、对象对象 =特性特性(属性属性)+)+行为行为n n特定对象之间存在某种关系特定对象之间存在某种关系n n一个班级包含若干学生一个班级包含若干学生(belong tobelong to)n n一个学生拥有一台或多台电脑一个学生拥有一台或多台电脑(has ahas a)n n(一个一个)学生是学生是(一个一个)人人(is ais a)n n对象之间相互作用对象之间相互作用n n老师让学生交作业老师让学生交作业n n学生启动机器学生启动机器面向对象程序设计面向对象程序设计第4页/共25页面向对象程序设计面向对象程序设计n n类是一种抽象数据类型类是一种抽象数据类型,可以为一个类定义可以为一个类定义

5、成员变量成员变量(member(member variable)variable)来表示该类所有对象共有的属性,定义来表示该类所有对象共有的属性,定义成员函数成员函数(member(member function)function)表示共有的行为。表示共有的行为。classclass Humen Humen char name64;char name64;/成员变量成员变量int age;int age;void sleep();void sleep();/成员函数成员函数void eat();void eat();第5页/共25页2.2.类的封装性类的封装性n n面向过程编程中,数据与处理数

6、据的函数相互独立,面向过程编程中,数据与处理数据的函数相互独立,处理模式为向函数传递参数并获得返回值处理模式为向函数传递参数并获得返回值.char str64=“C+programming”;char str64=“C+programming”;int len=strlen(str);int len=strlen(str);n n面向对象编程中,将数据与处理数据的函数封装成面向对象编程中,将数据与处理数据的函数封装成一个整体一个整体 类类.class string class string private:private:char str64;char str64;public:public:

7、int GetLen();int GetLen();string str;string str;int len=str.GetLen();int len=str.GetLen();第6页/共25页n n类通常将接口类通常将接口(函数集合函数集合)提供给用户,而将具体实现提供给用户,而将具体实现细节进行隐藏细节进行隐藏.n nC+C+中使用中使用publicpublic和和privateprivate关键字来进行访问控制关键字来进行访问控制,publicpublic用于提供类的接口用于提供类的接口,privateprivate隐藏类的实现细节隐藏类的实现细节.class student clas

8、s student private:private:char StudentID 64;char StudentID 64;/学号学号void Eat();void Eat();public:public:char*GetStudentID();char*GetStudentID();void Study();void Study();信息隐藏信息隐藏第7页/共25页n n当一个数据类型仅暴露其公有接口当一个数据类型仅暴露其公有接口,而将其私有实现隐藏而将其私有实现隐藏,则称这则称这个数据类型是抽象的个数据类型是抽象的.n nC+C+中的一个类就是一种抽象数据类型中的一个类就是一种抽象数据类型

9、,将类所提供的功能以公有将类所提供的功能以公有成员函数的形式封装,而将具体实现隐藏成员函数的形式封装,而将具体实现隐藏.n n抽象数据类型使得抽象数据类型使得用户用户不需要了解具体实现细节,可以提高程序不需要了解具体实现细节,可以提高程序的可靠性和健壮性的可靠性和健壮性.n n示例程序:示例程序:03_01.03_01.抽象数据类型抽象数据类型第8页/共25页n n面向对象系统中面向对象系统中,对象之间通过消息传递来进行协作对象之间通过消息传递来进行协作.n n一个完整的消息包含一个完整的消息包含:n n消息名和消息参数消息名和消息参数n n消息的发送者和接收者消息的发送者和接收者n nC+C

10、+语言中语言中,消息的传递体现为类成员函数的调用消息的传递体现为类成员函数的调用.int main()int main()ofstream out;ofstream out;out.open(“test.dat”);out.open(“test.dat”);return 0;return 0;3.3.消息传递消息传递第9页/共25页n n面向对象三大基本特性:面向对象三大基本特性:n n封装性封装性n n继承性继承性n n多态性多态性n n引入继承性和多态性引入继承性和多态性,可描述特定类之间的一种包含关系,使之形可描述特定类之间的一种包含关系,使之形成层次结构。成层次结构。4.4.继承与多态

11、继承与多态第10页/共25页继承性继承性n n继承性是描述了两种抽象概念继承性是描述了两种抽象概念(类类)一种包含一种包含关系关系.n n类类B B继承类继承类A,A,一般可以表示为一般可以表示为“B is a type of B is a type of A”.A”.n nA A称为基类或父类称为基类或父类,B,B称为子类或派生类称为子类或派生类.n n在面向对象系统中,引入继承性是为了:在面向对象系统中,引入继承性是为了:n n支持代码重用支持代码重用,减少代码冗余减少代码冗余n n减少接口和界面减少接口和界面n n引入继承性之后,就形成了类的层次引入继承性之后,就形成了类的层次第11页/

12、共25页ClassClass Humen Humenprotectedprotected:charchar name64;name64;intint age;age;voidvoid Sleep();Sleep();voidvoid Eat();Eat();classclass Student:Student:publicpublic Humen Humen protectedprotected:charchar studentID64;studentID64;publicpublic:voidvoid Study();Study();继承性继承性HumenStudent第12页/共25页n

13、n多多态性态性指不同的对象收到相同的消息时产生不同的动作指不同的对象收到相同的消息时产生不同的动作.n nC+C+语言中多态性体现为语言中多态性体现为:具有继承关系的不同层次的类中,可以具有继承关系的不同层次的类中,可以有相同名的函数,其实现方法各不相同有相同名的函数,其实现方法各不相同.n n熟练掌握多态是成为熟练掌握多态是成为C+C+高手的最重要条件高手的最重要条件.多态性多态性第13页/共25页5.5.面向对象语言面向对象语言n n目前主流的面向对象程序设计语言有:n nC+C+n nJavaJavan nLISPLISPn nSimulaSimulan nSmalltalkSmallt

14、alkn n第14页/共25页6.6.面向对象系统建模面向对象系统建模n n所谓模型,就是为了理解事物而对事物作出所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面的一种抽象,是对事物的一种无歧义的书面描述描述.n nUML(Unified Modeling Language)UML(Unified Modeling Language)是一种标准是一种标准的面向对象建模语言的面向对象建模语言(教材教材P113P113)。n n用面向对象方法开发软件,通常需要建立三用面向对象方法开发软件,通常需要建立三种形式的模型种形式的模型:n n描述数据结构的对象模型描述数据结构的

15、对象模型(用类图及用类图及ERER图表示图表示)n n描述控制结构的动态模型描述控制结构的动态模型(用状态图表示用状态图表示)n n描述系统功能的功能模型描述系统功能的功能模型(用数据流图表示用数据流图表示)第15页/共25页对象模型对象模型n n对象模型模拟现实世界的对象及对象之间的对象模型模拟现实世界的对象及对象之间的关系,描述了系统的静态结构关系,描述了系统的静态结构.n n表示类表示类-&-&-对象的图形符号:对象的图形符号:类名属性行为HumennameageSleepEat第16页/共25页n n类类-&-&-对象之间的关系可分为对象之间的关系可分为:n n归纳归纳(继承继承)关系

16、关系(is a):(is a):一般一般特特殊的关系殊的关系交通工具汽车自行车对象模型对象模型第17页/共25页n n组合关系组合关系(belong to):(belong to):整体整体部部分的关系分的关系教材封面前言目录章1,m对象模型对象模型第18页/共25页关联关系(has a):相互依赖,相互作用的关系教材教师1+使用对象模型对象模型第19页/共25页类图类图员工姓名电话身份证号工资雇佣解雇公司名字地址业务范围部门1,m产品产品名成本重量1+生产经理工人项目项目名预算优先级参加1+1+主持1+管理0,11+为之工作第20页/共25页ERER图图员工姓名电话工资公司名字地址业务工人经

17、理ISAISA参加主持项目项目名预算优先级部门组成管理生产产品产品名成本重量为之工作第21页/共25页动态模型动态模型n n动态模型表示系统的控制性质,规定了对象动态模型表示系统的控制性质,规定了对象模型中的对象的合法变化序列模型中的对象的合法变化序列.n n通常用状态图描述对象对事件通常用状态图描述对象对事件(消息消息)的响应的响应行为及状态变化行为及状态变化.n n每一个类的状态图通过共享事件合并起来,每一个类的状态图通过共享事件合并起来,构成了系统的动态模型构成了系统的动态模型.状态1Do:行为1状态2Do:行为2初始事件事件1结束事件第22页/共25页状态图状态图进行Do:暂停Do:继

18、续完成启动暂停完成Do:验收结束Do:取消取消项目运作状态图第23页/共25页功能模型功能模型n n功能模型表示变化的系统的功能模型表示变化的系统的“功能功能”性质,更直接地反映了用户性质,更直接地反映了用户对目标系统的需求对目标系统的需求.n n通常,功能模型由一组数据流图组成。通常,功能模型由一组数据流图组成。n n三种模型的关系三种模型的关系:n n功能模型指明了系统应该功能模型指明了系统应该“做什么做什么”.n n动态模型规定了什么时候进行动态模型规定了什么时候进行(即在什么状态接受什么消息的触发即在什么状态接受什么消息的触发)n n对象模型定义了完成功能的实体对象模型定义了完成功能的实体第24页/共25页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com