版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,面向对象的程序设计概述,2. 什么是面向对象程序设计,4.面向对象程序设计的基本特征,5. 面向对象的程序设计语言,第1章 概述,1. 程序设计方法,3. 面向对象程序设计的概念,1.程序设计方法,1、结构化程序设计,将问题分解成若干模块,自上而下逐步求精。 编写函数实现模块的功能,函数被调用执行完成操作任务。 结构化的程序设计范型 STRUCTURED PROGRAMING SP 程序=过程(函数)+调用 结构化程序设计特点: 功能分解是结构化程序设计的核心 根据模块功能设计数据结构,1.程序设计方法,1、程序设计方法,结构化程序设计特点: 把数据结构和过程作为两个实体来看待 重点在过程,
2、 数据与过程(即数据处理)分离 自顶向下、逐步细化的设计方法,模块之间的依赖性就会很大 算法实现采用顺序、选择、循环三种控制结构,1、程序设计方法,结构化程序设计特点: 难以适应大型软件的设计(模块化相互调用出现的复杂性) 程序的可重用性差,维护困难,2.什么是面向对象的程序设计,2、面向对象的程序设计 程序设计范型是指设计程序的规范、模型和风格,它是一类程序设计语言的基础。面向对象的程序设计范型: 程序=对象+消息 面向对象程序的基本元素是对象,程序的操作是通过向对象发送消息来实现的。,面向对象程序设计的特点: 被操作的数据成为重点,而不是实现操作的函数过程; 数据构成了软件分解的基础,而不
3、是功能。 数据和将要进行的操作看成一个整体,而不是把他们作为两个独立的实体。 数据本身不能被外部程序和过程直接存取,数据更加安全。,2.什么是面向对象的程序设计,程序由类的定义和类的使用两部分组成,在主程序中定义多个对象,规定他们之间传递消息的先后顺序。 程序中的一切操作,通过向对象发送消息来实现。 对象接受消息后,启动有关函数来完成相应的操作。,2.什么是面向对象的程序设计,面向对象程序设计模式:,2.什么是面向对象的程序设计,对象 现实世界中,任何事物都是对象。一名学生、一辆汽车等。 对象具有静态属性和动态行为。每个对象有个名字,用属性描述他的特性,有一组操作,完成某些行为;行为包括:对自
4、身的和其他对象的行为。,3.面向对象程序设计的基本概念,对象 在面向对象设计中,对象是属性数据与一组操作 封装在一起构成的统一体。 在面向对象程序设计中,对象与现实世界的事物对应,数据体现现实世界事物的属性,操作体现现实世界中事物的行为。 例如:一个学生对象,学号、姓名和成绩等数据就是他的属性,输入输出信息就是他的操作。,3.面向对象程序设计的基本概念,对象(数据和操作封装成的统一体),3.面向对象程序设计的基本概念,学生1(对象),数据:学号 姓名 成绩,操作:输出 (学号等) 输入(学号等),学生2(对象),数据:学号 姓名 成绩,操作:输出 (学号等) 输入(学号等),万物皆对象,世界是
5、由什么组成的?,身边的对象,布兰尼,朱丽叶,顾客 姓名:朱丽叶 年龄:28 体重:52千克 操作: 购买商品,姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克 操作: 收款 打印账单,对象的特征属性,属性对象具有的各种特征 每个对象的每个属性都拥有特定值 例如:布兰尼和朱丽叶的体重不一样,60kg,布兰尼,属性,35岁,对象的行为方法,方法对象执行的操作,打单,收银,方法,刷卡,对象的属性和方法,法拉利F360 Spider的属性和方法 列出小狗对象的属性和方法,属性: 品牌:法拉利 型号:F360 Spider 颜色:黄色 价格:380万元 方法: 发动 停止 加速,属性: 颜色:白色
6、 方法: 叫 跑 吃,对象的属性和方法,说一说教室里的对象 描述他们的属性和方法,颜色:黑色 品牌:BENQ 投影,姓名:张三 年龄:20 学习,类型:白炽灯 开 关 变亮 变暗,材制: 木质 支撑物品,类 在现实世界中,“类”是一组具有相同属性和行为的对象的抽象。张三、李四每个人都是一个对象,而他们统称为人类。 类和对象之间的关系是抽象和具体的关系。现实世界中的类是一个抽象的概念。张三、李四是具体的对象,他们是人类的一个个实例。,3.面向对象程序设计的基本概念,类 在面向对象的程序设计中,类是对具有相同数据结构和相同操作的一类对象的描述。 总是先声明类,再由类生成对象。类是建立对象的“模板”
7、,对象是类的实例。由类创建对象的过程,叫类的实例化。(例如,做月饼的模板和月饼),3.面向对象程序设计的基本概念,从对象抽象出“类”,抽取出下列对象的属性和方法的共同特征,轿车,顾客,类,顾客类 轿车类 ,类是对象的模板(template),对象就是类的一个实例(instance)确定对象将会拥有的特征(属性)和行为(方法),类是对象的类型 不同于int类型:具有方法,各种口味的球状冰淇淋,球状冰淇淋模子,类和对象,类和对象有什么区别呢? 类是抽象的概念,仅仅是模板,比如说:“人” 对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”,小布什,普京,克林顿,消息与方法 现实世界中的对象之
8、间相互联系、相互作用和连接,构成了各种不同的系统。 在面向对象程序设计中,对象之间的联系称为对象交互,并通过消息传递机制实现。消息传递机制: 一个对象向另一个对象发出的请求称之为消息,这个对象称之为发送者,接收消息的对象(接收者)接收到消息后,就会调用有关方法,执行相应的操作,完成相应的功能。,3.面向对象程序设计的基本概念,3.面向对象程序设计的基本概念,消息传递机制,消 息,Class A Public: void show(); private: int x; Void main() A a(); a.show(); ,调用成员函数,消息与方法 消息的3个性质: 1、同一个对象可以接收不
9、同形式的多个消息,做出不同的响应。 2、相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的。 3、对消息的响应并不是必需的,对象可以响应消息,也可以不响应。,3.面向对象程序设计的基本概念,消息与方法 在面向对象的程序设计中,对象所能实现的行为或操作称之为方法。方法包括界面和方法体两部分,方法的界面给出了方法的名和调用协议,(成员函数的函数名和参数);方法体则是实现某些操作的一系列计算步骤(函数体代码)。 调用对象的成员函数就是向该对象发送了一个消息,对象使用成员函数响应相应的消息。,3.面向对象程序设计的基本概念,抽象 抽象是通过特定实例(对象)抽取共同性质后形成概念的过程。简单理
10、解就是复杂世界的简单表示,强调主题,忽略无关信息和细节。 面向对象的程序设计中的抽象包括:数据抽象和代码抽象。数据抽象描述对象共同的属性特征,代码抽象描述对象共同的行为特征或具有相同的功能。,4.面向对象程序设计的基本特征,4.面向对象程序设计的基本特征,封装 现实世界中,所谓封装就是把某个事物包围起来,使外界不知道该事物的具体内容。 在面向对象的程序设计中,封装是指把数据和实现操作的代码集中起来放到对象的内部,并尽可能的隐蔽对象内部的细节。使用一个对象只需知道它对外的接口(函数),而不必知道它的数据结构细节和实现操作的代码。 C+中函数名及函数参数列表就是对象的接口。,4.面向对象程序设计的
11、基本特征,4.面向对象程序设计的基本特征,接口2,操作3,数据,操作2,操作1,接口1,接口3,封装 封装的好处: 1、对象之间,相互独立,互补干扰。 2、接口联系,信息隐蔽,数据安全。,4.面向对象程序设计的基本特征,继承 在面向对象的程序设计中,继承表达的是对象类之间的关系。继承可以使某一类具有另外一个类的特征和能力。继承关系使类间具有共享特征;具有差别或新增部分;具有层次结构。 继承的作用:避免重复开发公用代码,减少冗余;增强一致性,减少模块之间的接口和界面。提供最大限度的“软件复用”。,4.面向对象程序设计的基本特征,生活中的继承,子类具有父类的一般特性(包括属性和行为),以及自身特殊
12、的特性。,巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗?,汽车,请问:出租车包含哪些属性和行为呢?,什么是继承,继承是一种机制,让一个类能够继承另一个类的所有行为和属性。,通过继承,一个类可以拥有已有类的所有功能。 通过继承,所有类都以严格的层次结构来组织。,在面向对象的程序设计中,继承被用来实现程序的“复用”。以提高程序设计的效率。,继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。,父类、子类,通过继承创建的新类称为“子类”或“派生类”。(subclass) 被继承的类称为“基类”、“父类”或“超类”。(superclass),动物,基类(超类/父类),派生类(子类),4.
13、面向对象程序设计的基本特征,编辑窗口类,窗口类,对话窗口类,玩具类,车类,玩具车类,单继承,多继承,多态 在现实世界中,有很多多态的特征 在面向对象的程序设计中,多态是指发出同样的消息被不同类型的对象接收时导致完全不同的行为。这里所说的消息主要指对类的成员函数的调用,而不同的行为是指成员函数的不同实现。 利用多态性,用户只需发送一般形式的消息,而将所有的实现留给接收消息的对象。对象根据所接收到的消息而做出相应的动作。,4.面向对象程序设计的基本特征,多态 C+语言支持两种多态性,即编译时的多态性和运行时的多态性。编译时的多态性是指运算符和函数重载,运行时多态性是通过虚函数实现的。 多态性增强了
14、软件的灵活性和重用性,为软件的开发和维护提供了方便。,4.面向对象程序设计的基本特征,软件开发效率低 数据与操作分离,大型软件的设计,开发和维护都会带来困难。 难以应付日益庞大的信息量和多样的信息类型 信息类型变得越来越丰富,文本、图形、图形、影像、声音等。 难以适应各种环境 基于网络的分布计算和并行计算,网络中的每台计算机都是一个节点,之间通过消息传递信息协调工作。面向对象的程序设计适应新环境。,5.传统程序设计方法的局限性,可提高程序的重用性 数据与操作封装,继承和多态提供了重用机制 可控制程序的复杂性 封装屏蔽了程序的复杂性,降低了程序的开发难度。 可改善程序的可维护 消息界面不改,就不会影响发送消息的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阅读打卡社交游戏创新创业项目商业计划书
- 2025-2030年硫酸钴行业直播电商战略分析研究报告
- 2025-2030年中国定制化面部轮廓修饰术行业前景趋势预测及发展战略咨询报告
- 2025年兰州文理学院招聘考试试卷真题
- 2012年浙江省宁波市中考数学试卷【含答案】
- 总护士长的工作总结5篇
- 确认会议议程及时间安排通知函3篇范本
- 店铺转让合同模板六篇
- 2026电信咨询面试题及答案
- 2026动物解说员面试题及答案
- 教育培训机构教师劳动合同
- 2025-国家基层糖尿病防治管理指南
- 2026年顺丰速运快递员面试问题及答案详解
- 国家基层糖尿病防治管理指南(2025)解读
- 第25课《文言文二则:曹冲称象》课件 统编版语文六年级上册
- 呼吸机脱机流程规范
- 2025年新高一英语暑假专项提升(人教版)动词时空密码速通(时态语态与主谓一致考点解析)
- 牛羊屠宰车间管理制度
- 潞安化工集团招聘2025笔试题库官方
- 2025年版云南省劳动合同范本下载
- 小学长元音知识讲解
评论
0/150
提交评论