面向对象技术概论.ppt
《面向对象技术概论.ppt》由会员分享,可在线阅读,更多相关《面向对象技术概论.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象技术面向对象技术第一章第一章 面向对象技术面向对象技术概论概论2 课程目标课程目标对对面向对象思想和理论面向对象思想和理论有初步的理解有初步的理解掌握面向对象编程的基本概念掌握面向对象编程的基本概念掌握面向对象分析与设计的基本概念掌握面向对象分析与设计的基本概念能够阅读和理解能够阅读和理解UML常用图形符号常用图形符号3 Applying UML and Patterns An Introduction to ObjectOriented Analysis and DesignTHE BEST Object Orientated Analysis and Design tutorial
2、 book(A)在 OOA/D、迭代式开发和 UML 方面是全球最畅销的书籍之一,已被翻译成多种语言并在业界和院校中被广泛使用课程参考书目课程参考书目(1)4 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
3、 and Refactoring参考书目参考书目(2)5 推荐参考资源推荐参考资源书籍书籍1、The Unified Software Development Process(统一软件开发过程)Jacobson等著,周伯生等译)机械工业出版社2、The Unified Modeling Language User Guide(UML用户指南)Jacobson等著,周伯生等译)机械工业出版社3、The Unified Modeling Language Reference Manual(UML参考手册)同上4、用J2EE和UML开发Java企业级应用程序 Khawar等著,康博译)清华大学出版社
4、网站网站1、http:/2、http:/3、http:/4、http:/6 面向对象方法基础面向对象方法基础面向对象方法的含义面向对象方法的含义 在在软软件件开开发发中中,采采用用与与人人的的思思维维过过程程相相一一致致的的,直直接接面面向向客客观观事事物物,面面向向所所要要解解决决的的需需求求问问题题,并并用用一一套套对对象象、类类、继继承承、消消息息等等机机制制开开发发软软件件的的系统性方法。系统性方法。是一种看待计算机软件系统的观点是一种看待计算机软件系统的观点是一种系统分析和设计的思想是一种系统分析和设计的思想是一种编程方法是一种编程方法是一组设计模式是一组设计模式是一种编程语言设计思
5、路是一种编程语言设计思路是实践者的日常工作是实践者的日常工作是媒体和市场人员口中的是媒体和市场人员口中的“万灵丹万灵丹”7 面向对象方法的特点面向对象方法的特点(1)直接面向客观事物与人类思维方法一致直接面向客观事物与人类思维方法一致 客观对象客观对象8 面向对象方法的特点面向对象方法的特点(2)采用一致连贯的软件模型采用一致连贯的软件模型业务模型业务模型需求模型需求模型逻辑模型逻辑模型设计模型设计模型实现模型实现模型测试模型测试模型9 面向对象方法的特点面向对象方法的特点(3)提高软件可重用性和效率提高软件可重用性和效率老软件:老软件:新软件:新软件:框架框架 方案方案 程序程序 类类 文档
6、文档继继 承承10 对象的概念对对象象是是系系统统中中用用来来描描述述客客观观事事物物的的一一个个实实体体,它它是是构构成成系统的一个基本单位。系统的一个基本单位。对对象象既既可可以以描描述述客客观观存存在在的的事事物物,也也可可以以表表示示由由人人主观构造的主观构造的抽象观念抽象观念。汽车汽车灯泡灯泡扳手扳手农村农村共产主义共产主义对象对象11 汽车汽车灯泡灯泡扳手扳手农村农村汽车汽车客观世界:客观世界:(客观事物)(客观事物)主观世界:主观世界:(概念)(概念)软件世界:软件世界:(对象)(对象)灯泡灯泡扳手扳手农村农村共产共产主义主义共产共产主义主义对象在三个世界中的含义12 软件中对象
7、由一组属性和操作组成。软件中对象由一组属性和操作组成。软件中的对象及性质(1)对象名属性操作对象名称对象的静态性质对象的动态性质13 例如例如:软件中的对象及性质(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)this.na
8、me=name;birthDate=new EmployeeDate(bYYYY,bMM,bDD);hireDate=new EmployeeDate(hYYYY,hMM,hDD);public String toString()return name+”birthday:”+birthDate.toString()+“hired:”+hireDate.toString();雇员对象Java编写的“雇员对象”程序14 类类用来描述具有相同性质的一组对象。用来描述具有相同性质的一组对象。汽车汽车灯泡灯泡扳手扳手农村农村共产主义共产主义类类类的概念15 识别类识别类类是一组对象,这些对象具有共同的
9、属性和共同的行为类是创建对象的模板 类可捕获对象的本质对象是类的实例化16 简化表示:规范表示:缩略表示:增加学生()删除学生()学校校名:String地址:String电话:Number学校传感器类名属性操作实体类边界类控制类类名类的表示类的表示17 关联的概念:关联的概念:本指事物之间存在的固有的本指事物之间存在的固有的牵连关系,在面向对象方法中,是对具有共同结牵连关系,在面向对象方法中,是对具有共同结构特征、关系和语义的链接描述。构特征、关系和语义的链接描述。关联的表示:关联的表示:教师 学生 类关系类关系-关联关联(1)18 关联的要素关联的要素 关联名关联名 角色角色 多重性多重性
10、关联的导航关联的导航关联名角色 公司 职员 雇佣雇主雇员1*多重性 公司 职员 雇佣单向导航 公司 职员雇佣双向导航*类关系类关系-关联关联(2)19 关联类关联类 公司 人 雇佣雇员雇主1*雇佣雇佣期合同约束关联类类关系类关系-关联关联(3)20 关联的种类关联的种类 一元关联一元关联 二元关联二元关联 多元关联多元关联 学生同舍1*教师管理1*公司 人 雇佣雇员雇主1*学生 教师 课程 学生关联类类关系类关系-关联关联(4)21 聚合关系聚合关系 聚合表示有多个部分聚集成为整体,表示部聚合表示有多个部分聚集成为整体,表示部分构成整体的一种松散的关系。分构成整体的一种松散的关系。组合关系组合
11、关系 组合表示部分与整体存在密切组成关系。组合表示部分与整体存在密切组成关系。森林 树木 1*学校 学生 1*类关系类关系-聚合与组合聚合与组合22 泛化的含义泛化的含义 与继承的含义相同,表示一般和特殊实体之间与继承的含义相同,表示一般和特殊实体之间的关系。的关系。泛化的表示泛化的表示 超类 子类子类 家具 桌子 椅子类关系类关系-泛化泛化23 依赖的含义依赖的含义 表示两个模型元素之间的语义联系,指一个表示两个模型元素之间的语义联系,指一个模型模型元素发生变化,必然影响到另外一个模模型模型元素发生变化,必然影响到另外一个模型元素。型元素。依赖的表示依赖的表示 课表 任课老师课程依赖类关系类
12、关系-依赖依赖24 面向对象技术研究内容面向对象技术研究内容面向对象的编程(OOP:ObjectOriented Programming)当今最流行的编程语言:Java、C#面向对象的分析与设计(OOAD:ObjectOriented Analysis and Design)当今最流行的建模语言:UML(Unified Modeling Language)L.M.Northrop:尽管面向对象语言正取得令人振奋的尽管面向对象语言正取得令人振奋的发展,但编程并不是软件开发问题的主要根源。发展,但编程并不是软件开发问题的主要根源。需求分需求分需求分需求分析与设计问题更为普遍并且更值得解决析与设计问
13、题更为普遍并且更值得解决析与设计问题更为普遍并且更值得解决析与设计问题更为普遍并且更值得解决。因此面向对象。因此面向对象开发技术的焦点不应该只对准编程阶段,而应开发技术的焦点不应该只对准编程阶段,而应更全面地更全面地更全面地更全面地对准软件工程的其他阶段对准软件工程的其他阶段对准软件工程的其他阶段对准软件工程的其他阶段。面向对象方法真正意义深远。面向对象方法真正意义深远的目标是它适合于解决分析与设计期间的复杂性并实现的目标是它适合于解决分析与设计期间的复杂性并实现分析与设计的复用。面向对象的开发不仅仅是编程,必分析与设计的复用。面向对象的开发不仅仅是编程,必须须在整个软件生命周期采用一种全新的
14、方法在整个软件生命周期采用一种全新的方法在整个软件生命周期采用一种全新的方法在整个软件生命周期采用一种全新的方法,这一观点,这一观点已被人们所接受。已被人们所接受。软件工程百科全书软件工程百科全书纽约,纽约,199425 面向对象的含义面向对象的含义(1)面向对象中有几个非常重要的概念:封装(encapsulation)信息/实现的隐藏(information/implementation hiding)状态保持(state retention)对象标识(object identity)消息(message)类(class)继承(inheritance)多态性(polymorphism)一般性
15、(generality)26 面向对象的含义面向对象的含义(2)封装,将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。信息/实现的隐藏,将某些属性或方法限制在封装内部使用,限制外部的可见性。状态保持,对象能够保持状态,可以用于后续的处理。对象标识,每个对象可以作为软件实体被标识和处理,每个对象都有一个对象标识符(object identifier OID)。消息,对象间发送请求的载体。27 面向对象的含义面向对象的含义(3)类,类是对象的类型(模版),对象是类的实例。继承,子类隐式使用超类(或父类)的属性和操作。多态性,子类覆盖(overriding)父类的方法,
16、它和重载(overloading)的区别在于重载是在同一个类中定义,利用参数的不同来进行动态绑定(dynamic binding)。一般性,类的定义是参数化的或模版化的,提高了定义的通用性。28 面向对象技术发展面向对象技术发展(1)里程碑1:Simula 67(19621967,挪威)OleJohan Dahl和Kristen Nygaard 在挪威奥斯陆国家计算中心(NCC)设计实现.公认的世界上第一种面向对象语言基本思想29 面向对象技术发展面向对象技术发展(2)里程碑2:Smalltalk(1970,施乐保罗阿托)Alan Kay设计实现第一个成熟的面向对象语言,为开发GUI而设计实用
17、化预言历史的最佳方式是创造历史预言历史的最佳方式是创造历史预言历史的最佳方式是创造历史预言历史的最佳方式是创造历史-Alan Kay-Alan Kay30 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 asciiV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 技术 概论
限制150内