




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计概述,2020/7/20,面向对象程序设计概述,2,面向过程就是 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。通过对象的功能解决问题。,2020/7/20,面向对象程序设计概述,3,例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。 把上面每个步骤
2、用分别的函数来实现,问题就解决了。,2020/7/20,面向对象程序设计概述,4,而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的, 2、棋盘系统,负责绘制画面, 3、规则系统,负责判定诸如犯规、输赢等。 第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。,2020/7/20,面向对象程序设计概述,5,可以明显地看出,面向对象是以事务(对象)来划分问题,而不是步骤。 同样是绘制棋局,这样的行为在面向
3、过程的设计中分散在了众多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。 而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。,2020/7/20,面向对象程序设计概述,6,功能上的统一保证了面向对象设计的可扩展性。 比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。 如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。 到这里就可以
4、很明显的看出面向对象和面向过程的区别所在了。,2020/7/20,面向对象程序设计概述,7,什么是面向对象程序设计,C语言程序设计 显示半径为15的圆面积 站在计算机的角度进行的程序设计 面向过程的程序设计 程序=过程+调用 典型语言C、PASCAL 面向对象设计方法 站在对象的角度进行的程序设计 人类习惯的解决问题的方法 程序=对象+消息,程序中的一切操作都是通过向对象发送消息来实现,2020/7/20,面向对象程序设计概述,8,概述-主要内容,面向对象技术的基本概念 面向对象技术的基本特征 面向对象技术的主要优点 几种典型的面向对象程序设计语言,2020/7/20,面向对象程序设计概述,9
5、,对象(一),面向对象技术认为客观世界是由各种各样的对象组成,每种对象都有各自的内部状态和运动规律,不同对象间的相互作用和联系就构成了各种不同的系统,构成了客观世界。 对象是组成一个系统的基本逻辑单元,是一个有组织形式的含有信息的实体,2020/7/20,面向对象程序设计概述,10,对象(二),现实世界中的对象 任何事物都是对象(具体的、抽象的;简单的、复杂的) 组成:(静态的)属性 + (动态的)行为 特点: 一个对象一个名字 用属性描述特征 有一组行为 自身所承受的行为;施加于其他对象的行为,2020/7/20,面向对象程序设计概述,11,对象(三),面向对象程序中的对象 是对现实世界对象
6、的抽象 组成:数据 + 操作(方法) 例:半径15的圆形对象,在面向对象程序中的表现: 描述属性的数据 半径 :15 操作 显示面积、显示周长 对象是数据和操作封装在一起构成的统一体,2020/7/20,面向对象程序设计概述,12,类(一),类(class)是对一组具有相同属性和行为的对象的抽象,是描述对象的“基本原型”,它定义一种对象所能拥有的数据和能完成的操作(成员变量,方法)。 例:圆形是一个类 半径为15的圆,是圆形的一个实例(实际例子),一个具体的对象 类是一个抽象的概念,在现实世界中并不真正存在,2020/7/20,面向对象程序设计概述,13,类(二),在面向对象程序中,是具有相同
7、数据结构和相同操作的一类对象的描述 例:“圆形”类 属性: 半径 操作:显示面积、显示周长 类的使用 声明Circle类 定义Circle类的若干对象c1,c2(分别为半径为15,半径为20的圆) c1,c2均称为类Circle的实例,2020/7/20,面向对象程序设计概述,14,消息和方法,消息是对象之间发出的行为请求 对象之间的交互机制,叫消息传递。 对象中的联系只能通过消息传递来进行,接收对象只有在接收到消息时,才能被激活。 多个消息构成一个事件。 消息的三个性质: 同一对象可以接收多个消息,作出不同响应; 相同消息可以传递给不同对象,响应可以不同 对消息的响应不是必需的,可以不相应。
8、,2020/7/20,面向对象程序设计概述,15,消息和方法,方法就是对象所能执行的操作 程序设计中,要求某一对象做某一操作时,就向该对象发送一个相应的消息。 对象根据接收到的消息,调用相应的方法,反之,有了方法,对象才能响应相应的消息。 java中通过成员函数实现方法。,2020/7/20,面向对象程序设计概述,16,面向对象技术的基本特征,抽象 封装 继承 多态,2020/7/20,面向对象程序设计概述,17,抽象,抽象就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。 组成: 数据抽象:描述某类对象的共同属性 代码抽象:描述某类对象的共同行为特征 例:学生成
9、绩管理 共同属性:String name; int number; float score;(数据成员) 共同行为:input(); modify(); print()(成员函数),2020/7/20,面向对象程序设计概述,18,封装,封装就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节 封装机制使对象的使用者和设计者分开,提高了代码的重用性,减轻了系统开发难度,2020/7/20,面向对象程序设计概述,19,继承,继承是一种联结类与类的层次模型。是指特殊类的对象拥有其一般类的属性和行为的特性。 例:,车型、颜色、轮胎、发动机 换档、开灯、开冷气,车次、乘客数、票价 进站
10、、出站,开始时间、结束时间、站次、路线 停站时间,2020/7/20,面向对象程序设计概述,20,继承,有继承关系的类的特性: 类间有共享特性 类间有差别 类间有层次关系 两个类A和B,若B继承A(B是从A中派生出来的): A称为基类(父类、超类) B称为继承类(子类、派生类) B既包含A的特性,也具有自己的特性。 继承使基类的数据结构和操作被派生类重用 增加了可重用性,减少了冗余。,2020/7/20,面向对象程序设计概述,21,多态,不同的对象收到相同的消息时产生多种不同的行为方式。 例:计算图形面积 Circle、 Rectangle都是图型Shape的子类 Shape c1=new Circle(15);Shape c2=new Rectangle (10,12);c1.Area(); c2.Area();,2020/7/20,面向对象程序设计概述,22,多态,子类对父类方法的覆盖 父类:汽车 挂五档 子类: 公共汽车 挂五档 奔驰轿车 挂五档,2020
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨质疏松的主要护理措施
- 健康生活指导与实践路径
- 脑出血患者的诊断和鉴别诊断
- 社区店店长培训大纲
- 高超声速空气动力学基础
- 病人健康教育新理念
- 【课件】科学记数法课件++2025-2026学年+人教版(2024)八年级数学上册++
- 【临汾】2025年山西临汾大宁县面向社会公开招聘幼儿教师13名笔试历年典型考题及考点剖析附带答案详解
- 教学课件制作
- 文库发布:税务课件语
- 2025至2030中国矿用卡车行业发展趋势分析与未来投资战略咨询研究报告
- 氟骨症课件教学课件
- 脚手架知识试题集及答案
- 宣城宣州区“政聘企培”人才引进笔试真题2024
- 诊后疾病管理行业体系构建
- 成都东方广益投资有限公司下属企业招聘笔试真题2024
- 中国乡村建设运动课件
- 2025至2030年中国高纯氮化硅行业市场全景评估及发展策略分析报告
- 2024年四川省高校毕业生“三支一扶”计划真题
- 2025年农作物种植与管理专业考试试题及答案
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
评论
0/150
提交评论