版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象技术第一章 面向对象技术概论,课程目标,对面向对象思想和理论有初步的理解 掌握面向对象编程的基本概念 掌握面向对象分析与设计的基本概念 能够阅读和理解UML常用图形符号,Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design THE BEST Object Orientated Analysis and Design tutorial book (A) 在 OOA/D、迭代式开发和 UML 方面是全球最畅销的书籍之一,已被翻译成多种语言并在业界和院校中被广泛使用,课程参考书目(
2、1),Craig Larman,“People often ask me which is the best book to introduce them to the world of OO design. Ever since I came across it, Applying UML and Patterns has been my unreserved choice.” -Martin Flower, author, UML Distilled and Refactoring,参考书目(2),推荐参考资源,书籍 1、 The Unified Software Development
3、Process(统一软件开发过程)Jacobson等著,周伯生等译)机械工业出版社 2、The Unified Modeling Language User Guide(UML用户指南)Jacobson等著,周伯生等译)机械工业出版社 3、The Unified Modeling Language Reference Manual(UML参考手册)同上 4、用J2EE和UML开发Java企业级应用程序 Khawar等著,康博译)清华大学出版社 网站 1、 2、 3、 4、 ,面向对象方法基础,面向对象方法的含义 在软件开发中,采用与人的思维过程相一致的,直接
4、面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统性方法。,是一种看待计算机软件系统的观点 是一种系统分析和设计的思想 是一种编程方法 是一组设计模式 是一种编程语言设计思路 是实践者的日常工作 是媒体和市场人员口中的“万灵丹”,面向对象方法的特点(1) 直接面向客观事物与人类思维方法一致,客观对象,面向对象方法的特点(2) 采用一致连贯的软件模型,面向对象方法的特点(3) 提高软件可重用性和效率,老软件:,新软件:,框架 方案 程序 类 文档,继 承,1.4.2,对象的概念,对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 对象既可以描
5、述客观存在的事物,也可以表示由人主观构造的抽象观念。,对象在三个世界中的含义,软件中对象由一组属性和操作组成。,软件中的对象及性质(1),例如:,软件中的对象及性质(2),Public class Employee private String name; private EmployeeDate birthDate; private EmployeeDate hireDate; public Employee(Sting name,int bYYYY, int bMM, int bDD, int hYYYY, int hMM,int hDD) = name; birthD
6、ate = new EmployeeDate(bYYYY,bMM,bDD); hireDate = new EmployeeDate(hYYYY,hMM,hDD); public String toString() return name+” birthday:”+ birthDate.toString()+ “hired:”+hireDate.toString(); ,雇员对象,Java编写的“雇员对象”程序,类用来描述具有相同性质的一组对象。,类的概念,识别类,类是一组对象,这些对象具有共同的属性和共同的行为 类是创建对象的模板,类可捕获对象的本质对象是类的实例化,简化表示: 规范表示:
7、缩略表示:,类名,类的表示,关联的概念:本指事物之间存在的固有的牵连关系,在面向对象方法中,是对具有共同结构特征、关系和语义的链接描述。 关联的表示:,类关系-关联(1),关联的要素 关联名 角色 多重性 关联的导航,*,类关系-关联(2), 关联类,关联类,类关系-关联(3),关联的种类 一元关联 二元关联 多元关联,类关系-关联(4),聚合关系 聚合表示有多个部分聚集成为整体,表示部分构成整体的一种松散的关系。 组合关系 组合表示部分与整体存在密切组成关系。,类关系-聚合与组合,泛化的含义 与继承的含义相同,表示一般和特殊实体之间的关系。 泛化的表示,类关系-泛化,依赖的含义 表示两个模型
8、元素之间的语义联系,指一个模型模型元素发生变化,必然影响到另外一个模型元素。 依赖的表示,依赖,类关系-依赖,面向对象技术研究内容,面向对象的编程(OOP: Object-Oriented Programming) 当今最流行的编程语言:Java、C# 面向对象的分析与设计(OOAD: Object-Oriented Analysis and Design) 当今最流行的建模语言:UML(Unified Modeling Language),L. M. Northrop: 尽管面向对象语言正取得令人振奋的发展,但编程并不是软件开发问题的主要根源。需求分析与设计问题更为普遍并且更值得解决。因此面
9、向对象开发技术的焦点不应该只对准编程阶段,而应更全面地对准软件工程的其他阶段。面向对象方法真正意义深远的目标是它适合于解决分析与设计期间的复杂性并实现分析与设计的复用。面向对象的开发不仅仅是编程,必须在整个软件生命周期采用一种全新的方法,这一观点已被人们所接受。 软件工程百科全书纽约, 1994,面向对象的含义(1),面向对象中有几个非常重要的概念: 封装(encapsulation) 信息/实现的隐藏(information/implementation hiding) 状态保持(state retention) 对象标识(object identity) 消息(message) 类(cla
10、ss) 继承(inheritance) 多态性(polymorphism) 一般性(generality),面向对象的含义(2),封装,将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。 信息/实现的隐藏,将某些属性或方法限制在封装内部使用,限制外部的可见性。 状态保持,对象能够保持状态,可以用于后续的处理。 对象标识,每个对象可以作为软件实体被标识和处理,每个对象都有一个对象标识符(object identifier OID)。 消息,对象间发送请求的载体。,面向对象的含义(3),类,类是对象的类型(模版),对象是类的实例。 继承,子类隐式使用超类(或父类)的属性
11、和操作。 多态性,子类覆盖(overriding)父类的方法,它和重载(overloading)的区别在于重载是在同一个类中定义,利用参数的不同来进行动态绑定(dynamic binding)。 一般性,类的定义是参数化的或模版化的,提高了定义的通用性。,面向对象技术发展(1),里程碑1:Simula 67 (1962-1967,挪威) Ole-Johan Dahl和Kristen Nygaard 在挪威奥斯陆国家计算中心(NCC) 设计实现. 公认的世界上第一种面向对象语言 基本思想,面向对象技术发展(2),里程碑2:Smalltalk(1970,施乐保罗阿托) Alan Kay设计实现 第
12、一个成熟的面向对象语言,为开发GUI而设计 实用化,预言历史的最佳方式是创造历史 - Alan Kay,Smalltalk范例,“无消息模式方法,宜写算法” | s c f k | “定义了四个临时变量” fArray new:26. “f是Array实例长度26” sPrompter prompt:enter line default: “s是Prompter的实例,装输入字串” 1 to:26 do:i|f at:i put:0. 1 to:size do:i| c(s at:i) asLowerCase. C isLetter ifTrue: kc asciiValue-a asciiV
13、alue + 1. F at:k put:(f at:k) + 1 . f,面向对象技术发展(3),里程碑3:ADT, Ada 83, 基于对象(1977-1983) 编程理论界在结构化运动中提出ADT思想,以N. Wirth和Liskov为代表 美国防部军用开发语言评选,Ada被指定为强制性军用编程语言,实际上已经进入“基于对象”阶段,Ada Lovelace是英国著名诗人拜伦的女儿,世界上第一个程序员。Ada语言以她的名字命名,面向对象技术发展(4),里程碑4:C+ (1982,贝尔实验室) 第一个被工业界广泛接受的支持面向对象能力的语言,创造者Bjarne Stroustrup 动机是给
14、C添加一些Simula特性,以完成当时刚刚出现的大规模复杂任务 商业化,Bjarne Stroustrup,面向对象技术发展(5),里程碑5:MS-Windows(1985,微软) 第一个被广泛使用的GUI系统软件,它使面向对象技术的使用不可阻遏,1985年出品的Windows 1.0产品,1987年出品的Windows 2.0界面,面向对象技术发展(6),里程碑6:Booch Method(1991,G. Booch) 第一个被广泛接受使用的面向对象建模方法,Booch代表作的第三版,面向对象技术发展(7),里程碑7:设计模式出版(1995,GoF) 掀起模式运动 长盛不衰的经典 23种设计
15、模式 不会用设计模式的程序员是低层次的软件人才,他们只会写code罢了,面向对象技术发展(8),里程碑8:Java语言推出(1995,Sun) 第一个被广泛使用的面向对象语言,J2EE是目前最成功的面向对象框架。,面向对象技术发展(9),里程碑9:UML被OMG接纳为标准(1997) 面向对象方法学之战结束,面向对象技术发展(10),里程碑10:微软.NET计划(2000) 图形界面 集成开发工具 快速开发 开发中小型系统的首选,面向对象技术发展历史总结,60年代后期:Simul67,基本思想 70年代后期:Smalltalk80,实用化 80年代:理论基础,C+等,商业化 90年代:面向对象
16、与设计方法学 B.H. Sellers等提出喷泉模型 G. Booch提出面向对象开发方法等 P. Coad和E.Yourdon提出OOA和OOD Jacobson提出OOSE 1997年:UML,面向对象程序设计语言,“方法大战”,面向对象技术发展(现状),现状 OO成为最重要的软件开发方法 OO在GUI、模拟系统、游戏开发、应用框架、软件构件化领域大显身手 Java、UML 与 RUP 构件技术 (CORBA、COM、EJB、.Net) 类库与设计模式,面向对象技术发展(未来),未来 OO的形式化与自动化 OO构件、设计模式的丰富将进一步提高软件开发的效率和质量 软件开发人员必须从 Thi
17、nk Procedurely转变为 Think Object-Orientedly,为什么对面向对象方法感兴趣?(1),面向对象方法的主要优点: 自然性 追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。 软件复用 可复用性(可重用性) reusebility 可扩展性 可管理性,可复用性(可重用性) 面向对象技术允许复用的不仅仅是 代码, 通过面向对象技术, 我们可以复 用需求、分析、设计、测试计划、用户 界面以及体系结构等等, 事实上, 软件 工程生存期中的每个部分都可以复用。,为什么对面向对象方法感兴趣?(2),传统系统分析:面向功能 ,把系统看成
18、 一组功能 OOA: 把问题当作一组相互作用 的实体,并确定实体间关系,为什么对面向对象方法感兴趣?(3),面向对象技术是一个有全新概念的 开发模式,其特点是: (1)方法是对软件开发过程所有阶段进 行综合考虑而得到的; (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性; (3)将OOA(分析)、OOD(设计)、OOP(实现)集成到生存期的相应阶段.,为什么对面向对象方法感兴趣?(4),开发方法的组合,OO方法的开发过程,OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设
19、计和实现的基本单元。,对象模型 对象模型表示静态的、结构的系统数据的性质。 对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。 OO方法强调围绕对象而不是功能来构造系统。,对象(object),现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 对象具有的含义: 在现实世界中:是客观世界中的一个实体 在面向对象程序中: 表达成计算机可理解、可操纵、具有一定属性和行为的对象 在计算机世界中: 是一个可标识的存储区域,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。,面向对象=对象 + 类 + 继承 + 消息通
20、信,面向对象的主要特征: 封装性 (Encapsulation) 继承性 (Inheritance) 多态性 (Polymorphism),类(class),具有共同属性和行为的对象的抽象 类与对象的关系 类是对象的抽象 对象是类的实例,类,对象,对象、实体与类,对象,实体,类,抽象数据类,计算机世界,现实世界,计算机逻 辑的实现,影射,抽 象,实 例 化,抽 象,概念世界,封装,封装是软件开发方法的重要原则,有两个涵义: 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。 尽可能隐蔽对象的内部细节 (信息隐蔽),传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象 的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业秩序主管2026年上半年园区安保秩序管控总结
- 2026四升五必背古诗词默写打卡清单(部编版)
- 2026年秋季小学开学第一课 做最好的自己
- 2026年秋季高中英语开学第一课 学科竞赛入门
- 2026年秋季播音主持专业开学第一课 学科交叉与创新发展教学设计
- 2026年北师大版小学六年级数学上册课时《百分数应用题拓展》教案
- 公司战略与风险管理(第2版)课件全套 杭建平 第1-8章 战略与战略管理-风险与风险管理
- 2026年汽车内饰碳纤维内饰板改装
- 冠状动脉粥样硬化护理
- 卒中护理工作流程图解
- BRCGS全球标准食品安全第9版标准要求
- 车间厂房租赁协议书范本
- 调查课件城市规划社会调查的基本类型
- DBJT 13-439-2023 福建省混凝土结构快速修复技术标准
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- JBT 1472-2023 泵用机械密封 (正式版)
- 商贸有限公司产品质量管理制度
- 2022-2023学年浙江省宁波市余姚市小升初数学自主招生备考卷含答案
- 2022年08月中国国新控股有限责任公司公开招聘国新证券总经理笔试题库含答案解析
- GB/T 41349-2022机械安全急停装置技术条件
- 阿特拉斯使用说明书(全) - 图文-
评论
0/150
提交评论