




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/7/29,1,面向对象程序设计_Java,授课人:唐晓军 重庆邮电大学计算机学院,本人简介及联系方式,本人姓名:唐晓军 Email: (校内) (校外) Blog:/ BBS: / 重要信息基本在BBS上,Blog现在较少更新。 QQ: 38298894 QQ认证信息:,2019/7/29,2,本课程要求,不要以拿学分的心态学这门课,虽然学分很重要。 平时还是要多下点功夫在学习上,这门课程是计算机的基础课,有些知识会影响到后续的程序设计课程。 平时到课和作业很重要,虽然你可以旷课和不交作业,但是请注意次数。 旷课或者不交作业次数达到总次数的1/3(含),取消考试资格。 最后的成绩评定期末考试80 平时成绩,这个学期如有变化,另行通知。,2019/7/29,3,本课程要求,答疑时间:从第5周开始,单周的周二晚上19:3021:00,需提前预约。也可在BBS上提问,我会尽快回答。 答疑地点:二教三楼,计算机基础实验教学研究中心。 对于重修或补修的同学同样适用上面的要求,如有特殊情况,请在开学3周内向我书面说明,并副上辅导员签字确认。 平时大家在学习上的任何问题可以随时问我,我会尽量回答;但是,期末考试结束后,请大家不要以任何方式联系我询问考试成绩。,2019/7/29,4,一些小的细节,大家在交作业的时候,作业本封面上要写明如下信息: 学号、姓名、班级编号、任课老师姓名 期末考试试卷上需要写明的信息: 学号、姓名、班级编号 在书写上述信息时,请字迹工整,因为这些信息是写给他人看。 电子版作业提交的格式详情见我的BBS,2019/7/29,5,2019/7/29,6,第1章 面向对象技术概述,1.1 面向对象技术的发展 1.2 与结构化方法的比较 1.3 基本概念 1.4 面向对象技术的基本特征 1.5 面向对象分析与设计简介,2019/7/29,7,1.1 面向对象技术的发展,面向对象技术源于面向对象的编程语言(Object Oriented Programming Language,OOPL)。面向对象编程语言的繁荣是面向对象技术走向实用的重要标志,也是面向对象技术在计算机学术界、产业界和教育界日益受到重视的推动。,2019/7/29,8,1.1 面向对象技术的发展,在C+语言十分热门的时候,人们开始了对面向对象分析(Object Oriented Analysis,OOA)的研究,进而延伸到面向对象设计(Object Oriented Design,OOD)。特别是90年代以后,许多专家都在尝试用不同的方法进行面向对象的分析与设计,在这段时期,面向对象的分析和设计技术逐渐走向实用,最终形成了从分析、设计到编程、测试与维护一整套的软件工程体系。当前,面向对象的概念已经渗透到编程语言、用户接口、人工智能和数据库等方面。,2019/7/29,9,1.2面向对象方法与结构化方法的比较,按照结构化方法的思路,采用“自顶向下、逐步求精”的方法,可以把问题描述中的系统分解为一系列的模块。 结构化方法强调功能抽象与模块化,因而结构化方法看作一系列处理的过程,也就是以模块(即过程)为中心的开发方法。,2019/7/29,10,某校需要设计图书管理系统,要求该系统具有借阅、归还、预订、查询等基本功能,其功能图:,2019/7/29,11,1.2面向对象方法与结构化方法的比较,按照面向对象方法来分析本系统则不是从功能入手,而是从对象入手。待解决的问题所涉及的业务范围称为该软件的问题域(Problem Domain)。 面向对象方法从问题域中的事物出发,围绕问题域中的事物来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接地映射问题域。,2019/7/29,12,对于图书管理系统,首先可以识别出一些直接的对象,包括图书、杂志、借阅者、图书管理员,还需要一个实体对象来记录图书的借还信息。到这一步,基本完成了实体对象的识别。另外,还需要一个借书的控制类来执行借书的动作。这样,初步的对象模型我们就可以建立了。,2019/7/29,13,面向对象方法的优越性 (1)以对象为中心的开发方法能更自然更直接地反映真实世界的问题空间,对象、类、子类都自然对应于实际问题的物理或逻辑实体,这样使问题转换工作量达到最小程度。 (2)以对象为中心的开发方法采用消息传递机制作为对象之间相互通信的唯一方式。 (3)以对象为中心的开发方法具有独特的继承性和更丰富的多态性,使这种开发方法更易于扩充,能很好地适应复杂大系统不断发展与变化的要求。,2019/7/29,14,面向对象与面向过程的不同 (1)它以数据为中心而不是以功能为中心来描述系统,数据相对于功能而言具有更强的稳定性。 (2)它将数据和对数据的操作封装在一起,作为一个整体类来处理 。 (3)面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定 。 (4)它可以利用不断扩充的类库,在实际编程时采用搭积木的方式来组织程序,站在“巨人”的肩上实现自己的目标。,2019/7/29,15,1.3 面向对象技术的基本概念,面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的。下面我们从实际问题出发来了解面向对象的思维方法,认识面向对象方法中的基本概念,如对象、类、消息、事件等。,2019/7/29,16,对象是用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组方法组成。属性是用来描述对象静态特征(即状态)的一个数据项;方法是用来描述对象动态特征(即行为)的一个操作序列。 将具有相同属性和操作,并遵守相同约束规则的对象聚合成一组,这组对象集合就称为类(Class)。如自行车类,它是许多自行车的抽象;又如茶杯,有不同大小的茶杯,不同材料、不同形状、可以完全相同的许多茶杯茶杯类。,1.3.1 对象和类,2019/7/29,17,对于图书管理系统,我们可以考虑进一步识别出类的一些属性和方法。为了避免过早的陷入细节中,以及适应将来在设计时类的变化,在分析时,一般只把一些主要的属性和方法标识出来。,2019/7/29,18,类与对象的区别和联系 类包含了对象的所有属性和方法,它是对象的“模具”。对象是类的“实例”,可以由一个类制造出多个实例。 【注意】类本身并不完成任何操作,它只是定义对象的属性及方法,而实际的操作则是由它所实例化的对象来完成的。,2019/7/29,19,消息(Message)是对象间交互的手段,是要求某个对象执行某个操作的规格说明,是对象之间相互请求或相互协作的途径。 事件(Event)是系统产生的动作或是运行应用程序产生的动作,事件的概念和Windows的差不多,在Windows中,对于任何一个程序中的命令请求,例如鼠标的单击、移动、键盘按下等,都可以成为一个事件。事件通过消息描述。,1.3.2 事件和消息,2019/7/29,20,一个对象向另一个对象发出消息请求某项服务,接收消息的对象响应该消息,激发所要求的服务操作,并将操作结果返回给请求服务的对象。,2019/7/29,21,1.4 面向对象技术的基本特征,面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。,2019/7/29,22,抽象就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征.,1.4.1 抽象性,2019/7/29,23,将图书抽象成类,以及类实例化为对象的过程,2019/7/29,24,封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。,1.4.2 封装性,2019/7/29,25,例如,电视机包括外形尺寸、分辨率等属性,具有打开、关闭、转换频道等服务,如图1-10所示。封装意味着将这些属性和服务结合成一个不可分的整体,用户通过按钮等接口使用电视机,而不关心其内部的实现细节。,2019/7/29,26,继承(Inheritance)是一种联结类与类的层次模型。继承性是指子类的对象拥有其父类的属性和行为。继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。,1.4.3 继承性,2019/7/29,27,关于动物的继承结构图,2019/7/29,28,一般来讲,多态性(Polymorphism)就是多种形态的意思。多态性是指使用相同名字定义了不同的方法。多态性实际上提供了一种具体情况具体分析的问题解决方案。具体来说,多态性是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。,1.4.4 多态性,2019/7/29,29,例如,在父类“几何图形”中定义了一个行为“绘图”,但并不确定执行时到底画一个什么图形。子类“椭圆”和“多边形”都继承了几何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆,另一个是要画出一个多边形。,2019/7/29,30,1.5 面向对象分析与设计简介,面向对象分析(Object Oriented Analysis,OOA)就是运用面向对象的方法进行需求分析,其主要任务是分析和理解问题域,找出相应的类及对象,分析它们的内部构成和外部关系,正确地抽象为规范的对象和消息传递关系,形成面向对象模型,为后续的面向对象设计和面向对象编程提供指导。,2019/7/29,31,1.5 面向对象分析与设计简介,面向对象设计(Object Oriented Design,OOD)就是根据已建立的分析模型,运用面向对象技术进行系统软件设计。它将OOA模型直接变成OOD模型,并且补充与一些实现有关的部分,如人机界面、数据存储、任务管理等。面向对象设计是定义系统的构造蓝图、约定和规则,以指导系统的实现。,2019/7/29,32,1.6 面向对象程序设计语言简介,1第一个纯面向对象语言smalltalk 2混合型面向对象程序设计语言C+ C+兼容了C语言并弥补了其缺陷,增加了面向对象的能力。国内最为流行的是Borland C+和 Visual C+。 3网络编程语言Java 4新型面向对象程序设计语言C#,2019/7/29,33,Java的特点: 1)平台无关性 2)安全性 3)面向对象特性 4)简单性 5)动态特性 6)多线程 9)健壮性,2019/7/29,34,Java与C的不同点 1)Java没有全局变量 2)Java基本数据类型的size是确定的,而C中基本数据类型的size跟平台相关 3)Java用引用取代指针,但是Java中不允许对引用进行加减,没有取地址操作符 4)Java有垃圾收集机制,不需要自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 版个人车辆挂靠合同
- 篮球体育竞赛组织流程
- 2024-2025学年河南省郑州市中原名校七年级(下)期中历史试卷及答案
- 住宅买卖合同草案
- 小学音乐人教版二年级上册唱歌 冬天的故事教案及反思
- 有趣的生字 教案 二年级上册语文 部编版看图写话
- 哪种工具榨汁快大班
- 小学音乐人音版三年级下册猜调教案设计
- 版二手房交易合同示范文本
- 2025年浙江省嘉兴市高考英语三模试卷
- 糖尿病饮食与护理
- 2025年天津市河东区中考一模历史试题(原卷版+解析版)
- 河南省南阳市新未来联考2024-2025学年高一下学期4月期中物理试题(含解析)
- 中国普通食物营养成分表(修正版)
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- XR-WS1600型乳化液箱随机图册
- 《优化营商环境条例》学习研讨发言材料
- SartoriusPB10pH计校正方法
- 本科毕业论文氯化聚氯乙烯树脂的工艺研究及其供需现状
- 在产业链建设调度推进会议上的讲话稿
- 医院感染管理科十四五发展规划
评论
0/150
提交评论