面向对象的分析与设计课件基础篇.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象的分析与设计课件基础篇.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 课件 基础
- 资源描述:
-
1、1面向对象的分析与设计课件基础篇3主要知识点主要知识点1、什么是面向对象,它的基本思想和主要特点。、什么是面向对象,它的基本思想和主要特点。2、从认识论个角度,看面向对象方法的形成和主、从认识论个角度,看面向对象方法的形成和主要优势。要优势。3、面向对象方法中的、面向对象方法中的对象、类、属性、操作、继对象、类、属性、操作、继承、封装、聚合、关联、消息、多态性承、封装、聚合、关联、消息、多态性等基本概念等基本概念的确切含义,以及它们在系统构造中所起的作用。的确切含义,以及它们在系统构造中所起的作用。4、面向对象方法的发展历史。、面向对象方法的发展历史。第第1 1章章 面向对象方法概论面向对象方
2、法概论4从程序设计方法的角度看,面向对象是一种新的程序设计从程序设计方法的角度看,面向对象是一种新的程序设计范型范型(paradigm)(paradigm),其基本思想是使用对象、类、继承、封,其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设装、聚合、关联、消息、多态性等基本概念来进行程序设计。计。自自2020世纪世纪8080年代以来,面向对象方法已深入到计算机软件年代以来,面向对象方法已深入到计算机软件领域的几乎所有分支。它不仅是一些具体的软件开发技术领域的几乎所有分支。它不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界与策略
3、,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如的关系,用什么观点来研究问题并进行问题求解,以及如何进行系统构造的软件方法学。从这个意义上讲:何进行系统构造的软件方法学。从这个意义上讲:面向对象方法是一种运用对象、类、继承、封装面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。的软件开发方法。1.1 1.1 什么是面向对象什么是面向对象第第1 1章章 面向对象方法概论面向对象方法概论5面向对象方法的基本思想面向对象方法的基本思想一、从现实世界中客观存在的事物
4、出发来构造系统一、从现实世界中客观存在的事物出发来构造系统强调直接以问题域(现实世界)中的事物为中心强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象为系统中的对象,作为系统的特征,把它们抽象为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题基本构成单位。这可以使系统直接映射问题域,域,保持问题域中事物及其相互关系的本来面貌。保持问题域中事物及其相互关系的本来面貌。二、充分运用人类日常的思维方法二、充分运用人类日常的思维方法强调运用人类在日常的逻辑思维中经常采用的思想强调运用人类在日常的逻
5、辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装方法与原则,例如抽象、分类、继承、聚合、封装、关联等等。这使得软件开发者能更有效地思考问、关联等等。这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表题,并以其他人也能看得懂的方式把自己的认识表达出来。达出来。6主要特点:主要特点:用用类类和和对象对象作为系统的基本构成单位。对象对应作为系统的基本构成单位。对象对应问题域中的事物,其问题域中的事物,其属性属性和和操作操作刻画了事物的静刻画了事物的静态特征和动态特征,它们之间的态特征和动态特征,它们之间的继承继承关系、关系、聚合聚合关系、关系、关联关联和和
6、消息消息如实地表达了问题域中事物之如实地表达了问题域中事物之间实际存在的各种关系。间实际存在的各种关系。因此,无论系统的构成成分,还是通过这些成分因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射之间的关系而体现的系统结构,都可直接地映射问题域。问题域。7对问题域的认识(人)客观世界(问题域)计算机自然语言语言的鸿沟编程语言语言的过渡(人)编程(人)程序的理解和执行(机器)软件开发:对事物的认识和描述软件开发:对事物的认识和描述问题问题语言的鸿沟语言的鸿沟1.2 从认识论看面向对象方法的形成从认识论看面向对象方法的形成8计算机机器语言自然语言客观世界(问题域)
7、语言的鸿沟语言的发展语言的发展鸿沟变窄鸿沟变窄程序的指令、数据、地址,都是由二进制的“0”和“1”构成的。离机器最近,能够直接地执行,然而没有丝毫形象的意义,离人类的思维最远。汇编语言以易理解的符号表示指令、数据以及寄存器、地址等物理概念。稍稍适合人类的形象思维,但仍然相差很远。因为抽象层次太低,仍需考虑大量的机器细节。高级语言隐蔽了机器细节,使用有形象意义的命名和表达式,可以联系到程序所描述的具体事物。特别是结构化编程语结构化编程语言言更便于体现客观事物的结构和逻辑涵义,与人类的自然语言更接近,但仍有不少差距。面向对象语言能比较直接地反映客观世界的本来面目,并使软件开发人员能够运用人类认识事
8、物所采用的一般思维方法来进行软件开发。9问题域测试编程计算机编程语言自然语言需求分析总体设计详细设计软件工程学的作用软件工程学的作用传统的软件工程方法传统的软件工程方法分析与设计的鸿沟分析与设计概念及表示法的不一致10问题域问题域OOA计算机计算机自然语言面向对象编程语言OODOOPOOT软件工程学的作用软件工程学的作用面向对象的软件工程方法面向对象的软件工程方法111.3 1.3 面向对象方法的基本概念与原则面向对象方法的基本概念与原则对象,类对象,类属性,操作属性,操作封装封装继承,一般继承,一般-特殊结构特殊结构聚合,整体聚合,整体-部分结构部分结构关联关联消息消息多态多态持久对象,主动
9、对象持久对象,主动对象12对象对象是现实世界中是现实世界中某个实际存在的事某个实际存在的事物,它可以是有形物,它可以是有形的,比如一辆汽车的,比如一辆汽车,也可以是无形的,也可以是无形的,比如一项计划。,比如一项计划。对象是构成世界的对象是构成世界的一个独立单位。它一个独立单位。它具有自己的静态特具有自己的静态特征和动态特征。征和动态特征。属性属性是用来描述对象静态特是用来描述对象静态特征的一个数据项。征的一个数据项。操作操作是用来描述对象动态特是用来描述对象动态特征的一个动作序列。征的一个动作序列。对象标识对象标识就是对象的名字,就是对象的名字,有有“外部标识外部标识”和和“内部标内部标识识
10、”之分。之分。对象,属性,操作对象,属性,操作对象对象是系统中用来是系统中用来描述客观事物的一描述客观事物的一个实体,它是构成个实体,它是构成系统的一个基本单系统的一个基本单位。对象由一组属位。对象由一组属性和性和施加于这些属施加于这些属性一组操作构成。性一组操作构成。对象对象对象标识对象标识属性属性操作操作13对象(属性,操作,对象标识)对象(属性,操作,对象标识)要点要点:、对象标识符、对象标识符 、属性、属性 、服务、服务注意点:注意点:1.一体性一体性 对象标识符、属性和服务对象标识符、属性和服务2.区别区别 三者的区别三者的区别3.属性是对对象的静态描述属性是对对象的静态描述.4.服
11、务是对对象的动态描述服务是对对象的动态描述.外部是通过调用服务与对象取得联系外部是通过调用服务与对象取得联系.14类名,属性,服务的命名注意点类名,属性,服务的命名注意点 标识符(即名字)要达义。标识符(即名字)要达义。要简明,短小,符合人的思维习惯。要简明,短小,符合人的思维习惯。类名宜用名词或动名词,类名宜用名词或动名词,属性名用名词或动名词,属性名用名词或动名词,服务名用动词服务名用动词 或动名词。或动名词。15类名类名属性属性 服务服务PersonID,Name,Add,.GetID,GetName,ChID,ChName,.例:类课程的表示例:类课程的表示CourseCID,CNam
12、e,Credet,Term,NoteGetID,GetName,GetCredit,GetNoteChID,ChName,ChCredit,ChNote类的表示(注意与对象的联系)类的表示(注意与对象的联系)16对象(属性,操作,对象标识)对象(属性,操作,对象标识)对象对象属性属性服务服务人人姓名、电话、性别、年龄、地址、编号等等姓名、电话、性别、年龄、地址、编号等等获取姓名获取姓名,获取地址获取地址,获取编号获取编号,获取电话获取电话,修改地址修改地址(图一图一)例题例题 1:考虑对象:考虑对象“人人”,具体描述为:,具体描述为:对象对象属性属性服务服务课程课程课程名、编号、学时数、选课要
13、求、任课教师等课程名、编号、学时数、选课要求、任课教师等获取并修改课程名、编号、学时数、选课要求、获取并修改课程名、编号、学时数、选课要求、任课教师等任课教师等(图二图二)例题例题 2:考虑对象:考虑对象“课程课程”,具体描述为:,具体描述为:17类与对象的关系类与对象的关系 类类 对象对象 抽象定义抽象定义 实例实例 例:例:模具模具 由模具压出的工件由模具压出的工件 学生学生 学生王强学生王强 模板模板 应用模板产生的文件应用模板产生的文件 类型类型 变量变量,如如 C C 语言中的语言中的 int int 和和 int x;int x;18封装:封装:把对象的属性和操作结合成一个独立把对
14、象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。的系统单位,并尽可能隐蔽对象的内部细节。属属性性操操作作报刊报刊A A报刊报刊B B钱箱钱箱报刊零售报刊零售款货清点款货清点顾顾客客封装的重要意义:封装的重要意义:使对象能够集中而完整地描述并对应一个使对象能够集中而完整地描述并对应一个具体的事物。具体的事物。体现了事物的相对独立性,使对象外部不体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部能随意存取对象的内部数据,避免了外部错误对它的错误对它的“交叉感染交叉感染”。对象的内部的修改对外部的影响很小,减对象的内部的修改对外部的影响很小,减少了修改引起的
15、少了修改引起的“波动效应波动效应”。由封装机由封装机制保证制保证 封装带来的问题:封装带来的问题:编程的麻烦编程的麻烦执行效率的损失执行效率的损失 解决办法:解决办法:不强调严格封装,不强调严格封装,实行可见性控制。实行可见性控制。(混合型(混合型OOPLOOPL)例如:例如:C+C+19封装的优点:封装的优点:数据独立数据独立(如每件事物都对应于一对象如每件事物都对应于一对象)具有隐藏性和安全性具有隐藏性和安全性(如银行的账户如银行的账户)易于维护易于维护(由于数据独立由于数据独立,易于发现问题易于发现问题)封装的缺点:封装的缺点:编程麻烦,编程麻烦,需要更多的输入输出函数。需要更多的输入输
16、出函数。执行效率的损失。执行效率的损失。解决办法:解决办法:不强调严格封装,实行可见性控制。不强调严格封装,实行可见性控制。(混合型(混合型OOPL),如),如C+20抽象,类,一般类,特殊类抽象,类,一般类,特殊类抽象与分类:抽象与分类:忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,叫做抽象。抽象是形成概念的基本手段。把具有共同性质的事物划分为一类,叫做分类。类类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。类的作用是用来创建对象,对象是类的一个实例。对象对象对象对象对象对象对象对象对象对象
17、对象对象对象对象对象对象类名类名属性属性操作操作抽象抽象21不同程度的抽象可得到不同层次的分类不同程度的抽象可得到不同层次的分类较多地较多地忽略事忽略事物之间物之间的差别的差别可得到可得到较一般较一般的类的类较多地较多地注意事注意事物之间物之间的差别的差别可得到可得到较特殊较特殊的类的类运输工具运输工具火车火车汽车汽车飞机飞机卡车卡车轿车轿车轮船轮船车辆车辆22定义定义1:如果类如果类A A具有类具有类B B的全部属性和全部操作,而且具的全部属性和全部操作,而且具有自己特有的某些属性或操作,则有自己特有的某些属性或操作,则A A叫做叫做B B的的特殊类特殊类,B B叫叫做做A A的的一般类一般
18、类。一般类与特殊类又称。一般类与特殊类又称父类父类与与子类子类。定义定义2 2:如果类如果类A A的全部对象都是类的全部对象都是类B B的对象,而且类的对象,而且类B B中存中存在不属于类在不属于类A A的对象,则的对象,则A A是是B B的特殊类,的特殊类,B B是是A A的一般类。的一般类。可以证明,以上两种定义是等价的可以证明,以上两种定义是等价的一般类和特殊类的定义一般类和特殊类的定义23继承:继承:特殊类拥有其一般类的全部属性与操特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。作,称作特殊类对一般类的继承。继承意味着继承意味着自动地拥有自动地拥有,或曰,或曰隐含地复制隐
19、含地复制继承简化了继承简化了人们对事物人们对事物的认识和描的认识和描述,非常有述,非常有益于软件复益于软件复用,是用,是OOOO技技术提高软件术提高软件开发效率的开发效率的重要原因之重要原因之一。一。由继承机由继承机制保证制保证由一组具有继由一组具有继承关系的类所承关系的类所组成的结构称组成的结构称作作一般一般-特殊特殊结构结构。它是一。它是一个以类为结点个以类为结点,以继承关系,以继承关系为边的连通的为边的连通的有向图。有向图。继承关系的语义:继承关系的语义:“is a kind of”军人军人军官军官士兵士兵义务兵义务兵志愿兵志愿兵例例24多继承:多继承:允许一个允许一个特殊类具有一个以上
20、特殊类具有一个以上一般类的继承方式称作多继承一般类的继承方式称作多继承人员人员姓名姓名教职工教职工职称职称专业专业研究生研究生学号学号班级班级专业专业在职研究生在职研究生在职单位在职单位 例例:25聚合:聚合:是两个类之间的一个二元关系,它表示一个类的对象是两个类之间的一个二元关系,它表示一个类的对象实例以另一个类的对象实例作为其组成部分。实例以另一个类的对象实例作为其组成部分。聚合刻画了现实事物之间的构成关系或者拥有关系。聚合刻画了现实事物之间的构成关系或者拥有关系。部分对象部分对象整体对象嵌套对象嵌套对象整体对象部分对象部分对象整体对象对象指针或对象标识对象指针或对象标识两种聚合,两种实现
21、方式:两种聚合,两种实现方式:紧密、固定的聚合关系紧密、固定的聚合关系例如汽车与发动机例如汽车与发动机松散、灵活的聚合关系松散、灵活的聚合关系例如公司与法律顾问例如公司与法律顾问聚合关系的语义:聚合关系的语义:“has a”或或“is a part of”紧密、固定紧密、固定的聚合方式的聚合方式又称为又称为组合组合26整体整体-部分结构:部分结构:聚合关系又称整体聚合关系又称整体-部分关系。由一组具有聚合关系的类所部分关系。由一组具有聚合关系的类所形成的结构称为形成的结构称为整体整体-部分结构部分结构。它是一个以类为结点,以。它是一个以类为结点,以聚合关系为边的连通有向图。聚合关系为边的连通有
22、向图。例例公公 司司0*0*法律顾问法律顾问汽车发动机车身气缸111111*27关联:关联:两个或者多个类上的一个关系(即这些类的对象实两个或者多个类上的一个关系(即这些类的对象实例集合的笛卡儿积的一个子集合),其中的元素提例集合的笛卡儿积的一个子集合),其中的元素提供了被开发系统的应用领域中一组有意义的信息。供了被开发系统的应用领域中一组有意义的信息。城市城市*有航线有航线 城市之间有航线城市之间有航线教教 师师学学 生生*1 1指导论文指导论文 教师与被指导的学生教师与被指导的学生例:例:28用集合论的观点和系统需求讨论关联概念用集合论的观点和系统需求讨论关联概念 关联是两个或者多个类上的
23、一个关系,其中的元素提关联是两个或者多个类上的一个关系,其中的元素提供了被开发系统的应用领域中一组有意义的信息。供了被开发系统的应用领域中一组有意义的信息。例:设例:设A和和B是两个类,它们的对象实例集合是是两个类,它们的对象实例集合是A=a1,a2,anB=b1,b2,bmA和和B的笛卡儿积的笛卡儿积AB=,这个笛卡儿积集合中这个笛卡儿积集合中有有n m个元素,它们个元素,它们可以组合成可以组合成2(n m)个个子集合。子集合。但是只有某个子集合但是只有某个子集合中的元素提供了被开中的元素提供了被开发系统的应用领域中发系统的应用领域中一组有意义的信息时一组有意义的信息时,才有必要把它定义,才
24、有必要把它定义为系统中的一个关联为系统中的一个关联。29例如:在一个教学管理系统中例如:在一个教学管理系统中有教师、学生、教务员课程等类。有教师、学生、教务员课程等类。系统中需要表明每一门课程由哪位教师承担、有哪些学生系统中需要表明每一门课程由哪位教师承担、有哪些学生选修,因此需要在教师和课程之间定义一个关联,在学生选修,因此需要在教师和课程之间定义一个关联,在学生和课程之间也定义一个关联。和课程之间也定义一个关联。该系统的教务员要为学生做注册、登记成绩等工作,但是该系统的教务员要为学生做注册、登记成绩等工作,但是不需要区别是哪个教务员为哪个学生做的,因此就不需要不需要区别是哪个教务员为哪个学
25、生做的,因此就不需要在教务员和学生这两个类之间定义关联。在教务员和学生这两个类之间定义关联。教师教师课程课程学生学生教务员教务员callcall1*教务员教务员30消息:消息:消息是向对象发出的服务请求消息是向对象发出的服务请求 目前在大部分面向对象的编程语言中,消息其实就目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。是函数(或过程)调用。但是,函数调用只是实现消息的方式之一,上述理解但是,函数调用只是实现消息的方式之一,上述理解只适合于顺序系统只适合于顺序系统更一般的定义:更一般的定义:消息是对象之间在一次交互中所传送的信息消息是对象之间在一次交互中所传送的信息 31什么
展开阅读全文