UML面向对象概述
面向对象的概念与UML介绍
行为图
状态图 活动图
描述一类对象可能出现的状态及事件发生时状态的转移条件。一般状态图是对类图 的补充 描述为满足用例要求所要进行的活动以及活动活动时间的约束关系。使用活动图可 以很方便地表示并行活动
交互图
顺序图 协作图
描述对象之间的动态合作关系,强调对象之间消息发送的时间顺序,也 显示对象之间的交互过程 与顺序图是等价,但着重描述的是对象间的协作关系 描述代码部件的物理结构几个部件之间的依赖关系。一个部件可能是资 源代码、二进制代码或可执行部件。包括关于逻辑类或实现类的一些信 息,有助于分析和理解部件之间的相互影响程度 定义系统种软件的物理体系结构,可以描述实际的计算机、设备(用节 点表示)及它们之间的关系,也可描述部件之间按的依赖性以及连接的 类型。再借点内部放置可执行部件以对象,描述节点与可执行软件单元 的对应关系 制作人:赵飞
• Uml
是一种可视化的建模语言,它能够让系统构造者用标准的,易于理 解的方式建立起能够表达他们设计思想系统蓝图,并且提供一种机制,以便 于不同的人之间可以有效地共享和交流设计成果。
• Uml定义
分为两个部分
1.uml语义: 描述基于UML的精准元模型定义。元模型为UML的所有 元素在语法和语义上提供简单、 一致、通用的定义性说明,使开发者在语
小小
名名 = “小小张” 年年 = 22
小小小小小PC: 计计计
UML第1章 面向对象方法概论
(2)事物的静态特征用对象的属性表示,事物 的动态特征用对象的服务表示。
(3)对象的属性与服务结合为一体,成为一个 独立的实体,对外屏蔽其内部细节。 (4)对事物进行分类。把具有相同属性和服务 的对象归为一类,类是这些对象的抽象描述, 每个对象是它的类的一个实例。
(5)通过在不同程度上运用抽象的原则,可以 得到较一般的类和较特殊的类。 (6)复杂的对象可以用简单的对象作为其构成 部分。
• 抽象是在研究现实世界事物的过程中,忽略问 题中与当前目标无关的部分,以便更充分地集 中于与当前目标有关的部分。 • 封装将该数据抽象类型及其操作紧密结合在一 起,成为一个整体,从而使每个模块的界面尽 量少地暴露它的内部工作。
1.1.1
面向对象的思维
• 要真正获得高效的软件产品,首先是概念问题, 而不是实现问题。在实现期间企图修改设计的 缺陷,要比早期发现设计的缺陷进行修改付出 更高的代价。 • 面向对象开发是一个独立于编程语言的概念化 过程,直至最后阶段。面向对象开发本质上是 一种新的思维方式,而不是一种编程技术。
1.3
面向对象开发的概念
面向对象开发是现实世界中以抽象为基础的 软件思维的一种崭新方式。面向对象开发的本质 是应用领域概念的鉴别和组织,而不是它们在一 种程序设计语言中的最终表示。
1.3.1
面向对象方法学
• • • •
分析 系统设计 对象设计 实现
面向对象技术与UML
PART 01
面向对象编程基础
什么是面向对象编程
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式, 它以对象为基础来构建软件应用程序。在OOP中,对象是数据和与之相关的操作的 封装。
通过将数据和操作封装在对象中,可以更好地组织和管理代码,提高代码的可重 用性和可维护性。
2
UML的作用是提供一种通用的、可共享的建模语 言,以便开发人员能够更好地理解和管理复杂的 软件系统。
3
UML通过统一的符号和工具,简化了软件系统的 设计和开发过程,提高了开发效率和软件质量。
UML的主要组成部分
时序图(Sequence Diagram): 用于表示对象之间的交互和消息 传递顺序。
案例二:复杂类的UML表示
定义一个复杂的类"Employee",包含属性"name"、"age"、 "department"和"position",以及方法"work"、"getSalary"和 "setSalary"。
使用UML类图表示该类,并使用聚合关系表示Employee类与 Department类之间的关系。
示例
假设有一个“动物”类,我们可以创建一个“狗”类来继承“动物”类,并添加特定的狗的行为。这样 ,如果需要添加其他动物类型,我们可以轻松地创建新的子类,而不需要修改“动物”类的代码。
面向对象UML
A
细化
B
注释
注释用于对UML语言的元素或实体进行说明、解释和描述。通 常用自然语言进行注释。
注释由注释体和注释连接组成。注释体的图符是一个矩形,其 右上角翻下,矩形中标注注释的内容。注释连接用虚线表示,它把 注释体与被注释的元素连接起来。 注释的表示如图。在各种模型图中,凡是需要注释的元素或实 体均可加注释。
对泛化的约束 完整、不完整、不相交和覆盖是四种应用于泛化的约束,显示在大括号 里。若有多个约束,用逗号隔开。如果没有共享,则用一条虚线通过所有继 承线,并在虚线的旁边显示约束, 如图所示:
Class A {constraint 1,constraint 2} Class B Class C Class D Class B Class A {constraint 1,constraint 2} Class C Class D
Polygon 1 4..* {ordered} 保险合同
0..*
{ordered}
1..*
个人
Point
约束
如果一条约束涉及同一种类的多个元素,则要用虚线把所有受约束 的元素框起来,并把该约束显示在旁边。如果在某个图中都要使用某个 约束,可以在工具中声明该约束,也可以在图中边定义边使用。
约束
约束的类型:
售货 顾客 《使用》 供货 供货人 《使用》 《使用》 取货款 《使用》 打开机器 关闭机器 打开机器 关闭机器 自动售货机系统 《扩展》 售散装 饮料
uml语言支持面向对象的主要概念,并与具体的开发过程相关。
uml语言支持面向对象的主要概念,并与具体
的开发过程相关。
面向对象编程(Object-Oriented Programming,OOP)是一种常
见的编程范式,利用它可以提高代码的可维护性和复用性。在OOP中,UML语言是一种通用的建模语言,支持面向对象开发过程的主要概念。
一、UML语言基础
UML是一种建模语言,旨在帮助开发人员更好地理解和设计软件
系统。UML使用图形标记(如图表、箭头、矩形、椭圆等)来表示各种对象、过程、关系和操作,这些都是面向对象编程中的概念。
UML语言主要包括以下四种图:
1.类图(Class Diagram):表示对象类及其关系。
2.时序图(Sequence Diagram):表示对象之间的时序关系。
3.活动图(Activity Diagram):表示一个过程或系统的活动流程。
4.用例图(Use Case Diagram):表示一个系统的用例和用户行为。
二、主要面向对象概念
1.类和对象——类是一种抽象的概念,表示一类具有相同性质和
行为的对象的集合。而对象则是类中的具体实例。在UML类图中,类
通常用矩形表示,对象则用实例名称表示。
2.继承——继承是一种重要的概念,表示一个类可以从另一个类
继承属性和方法。在UML中,继承可以用实线箭头表示。
3.多态——多态是一种行为,表示同一个方法可以根据对象的不
同而表现出不同的行为。在UML类图中,多态可以用带箭头的虚线表示。
4.封装——封装是一种概念,表示将类的属性和方法保护起来,
只允许通过接口进行访问。在UML类图中,封装可以用带有"+"或"-"
面向对象设计与UML建模
面向对象设计与UML建模面向对象设计是一种软件开发方法,它将现实世界的实体抽象为对象,并以对象之间的相互关系来组织和描述系统的行为。而UML(统一建模语言)是一种用于可视化、规范化软件系统设计的标准建模语言。本文将从面向对象设计的概念入手,介绍面向对象设计与UML建模的关系及应用。
一、面向对象设计的概念
面向对象设计(Object-oriented Design)是一种以对象为中心的软件开发方法。在面向对象设计中,将系统中的各个对象抽象出来,通过定义对象之间的属性和方法,以及对象之间的关系,来描述系统的功能和行为。
面向对象设计的核心思想是将现实世界的实体抽象为对象,对于每个对象,描述其属性和方法,并通过对象之间的交互来实现系统的功能。这样的设计方式使得系统更加模块化,易于扩展和维护。
二、UML建模的概念
UML(Unified Modeling Language)是一种用于规范化、可视化软件系统设计的标准建模语言。它提供了一套丰富的符号和约定,用于描述系统的结构、行为和交互。
UML建模是面向对象设计的重要工具之一,它能够帮助开发人员更好地理解和设计系统。通过使用UML,开发人员可以绘制出类图、时序图、用例图等各种类型的图表,来描述系统的不同方面和视角。
三、面向对象设计与UML建模的关系
面向对象设计与UML建模是紧密相关的。面向对象设计将系统抽
象为对象,定义了对象的属性和方法,以及对象之间的关系。而UML
建模则是通过各种类型的图表来表示和描述这些对象、属性、方法和
关系。
具体来说,面向对象设计中的类可以通过UML的类图来表示。类
面向对象的概念与UML
quadrilateral1
(46, 37) (50, 45) (60, 35) (56, 10)
draw move(x, y) contains(aPoint)
quadrilateral2
(35, 60) (35, 85) (50, 85) (50, 60)
draw move(x, y) contains(aPoint)
❖ 它可用于软件生命周期各个过程,并适用于各种 不同的实现技术。
26
UML 发展历史
几十种面向对象的开发方法中最著名的3种方法是 OMT (Rumbaugh)、Booch 和 OOSE(Jacobson)。 OMT的强项在分析,而弱项在设计; Booch 91的强项在设计,而弱项在分析;
OOSE的强项在行为分析,而弱项在其他领域。 96年这三位杰出的专家合作被称为“ 三友(Three
第三章 面向对象 的概念与UML
1
第三章 面向对象方法与UML
3.1 面向对象系统的概念 3.2 统一建模语言UML概述 3.3 UML的模型元素 3.4 UML的图 3.5 UML的元模型结构
2
3.1 面向对象系统的概念
❖ 客观世界中的应用问题面对的主体都是物理的或 概念的实体。
❖ 从这些实体出发,分析实体的作用、责任以及它 们之间协作,从而找出问题的解,是很自然的。
对象 = 对象名+数据(属性)+操作(行为、服 务)
UML及面向对象设计思想
类图
类是面向对象技术的基础,是面向对象程序设计的基本单元。类图描述软件系统的静态结构。类图不仅定义了系统中的类,表示了类与类之间的关
系(关联、依赖、继承),而且也描述了类的内部结构(类的属性和操作)。
类图描述的是系统的一种稳定的静态关系,在系统的整个生命期内都是有效的。
类可以进一步划分为实体类、边界类和控制类。
⏹实体类保存系统中的信息。一个实体类的对象对应关系数据库中
的一条记录。
⏹边界类是系统与用户的接口。用户通过边界类与系统进行交互。
⏹控制类协调和控制其他类的对象以实现用例规定的行为,它封装
了实现用例行为所需要的事件流。
在系统分析阶段,主要考虑的是实体类。在设计和实现阶段,除了对实体类进一步细化之外,还要着重考虑边界类和控制类。
UML中类的基本表示方法:
类的封装性及其表示
封装性表现为类成员的可见性。可见性分为公开的(public)、受保护的(protected)和私有的(private)三种。
在UML中分别用“+”,“#”和“-”表示。“+”表示完全公开;“#”表示对同一个包中的类公开,对不同包中的类隐藏;“-”表示对外完全隐藏,仅仅对定义该成员的类的内部可见。
可见性也被分为:公开的,受保护的,默认的,私有的四类。其中“受保护的”对同一个包的其它类及不在同一个包的子类可见;“默认的”对同一个包的其它类可见。
类之间的关系表示
类之间的关系可以分为继承和关联,关联可以进一步分为组合、聚集和依赖。类之间关联关系的表示
关联用于泛指两个类之间概念上的联系。例如公司类和雇员类之间就存在联系,雇员为公司工作,公司雇佣雇员。
面向对象分析与UML
面向对象分析设计与建模什么是面向对象程序设计(OOP)?面向对象=对象+类+继承+通信什么是建模(Modeling) 模型的实质:对现实的简化。“一图胜过千言万语”面向对象分析设计(OOAD) 与建模的关系依照用户所理解的真实世界中的对象和概念,到软件的关系什么是建模语言?提供从各个方面描述软件系统的概念和符号,1996发布的UML0.9一直被广泛使用UML视图的用途,有哪些视图?从多个不同的方面来描述的,分别对应UML的几种视图:用例视图--从使用者角度描述系统功能逻辑视图—描述系统内部如何实现使用者:主要是设计人员和开发人员。 组件视图—描述系统有哪些组件/模块构成使用者:主要是开发人员。 并发视图—描述系统内部的通信与并发问题使用者:主要是开发人员和系统集成人员。 配置视图—描述系统软硬件的配置与位置关系使用者:开发人员、系统集成人员和测试人员UML图有哪些?用例图—描述系统的参与者与用例之间的关系类图—描述系统中的概念及它们之间的关系对象图—描述系统中实例及它们之间关系状态图—描述系统中对象所具备的状态,及触发状态改变的事件时序图—描述对象之间发送消息的时间顺序协作图—描述对象之间协作关系活动图—描述执行过程中涉及的活动及状态变化组件图—描述系统组件之间的关系配置图—描述系统的硬件及软件的物理结构模型元素事物关系通用机制
uml语言支持面向对象的主要概念,并与具体的开发过程相关。
uml语言支持面向对象的主要概念,并与具体的开发过程相关
Unified Modeling Language(UML)是一种用于面向对象分析和设计的图形化建模语言。UML 支持面向对象的主要概念,并且与软件开发过程密切相关。以下是UML 中与面向对象和软件开发过程相关的主要概念:
1. 类与对象:在UML 中,类表示具有相似属性和行为的对象的集合。对象是类的实例。类图是用于表示类、对象及它们之间关系的图形表示法。
2. 封装:封装是面向对象编程的基本概念之一,它通过将数据和操作封装在类中来隐藏对象的内部细节。在UML 类图中,可以使用符号来表示类的属性和方法,并指定它们的可见性(public、private、protected 等)。
3. 继承:继承是通过子类(派生类)从父类(基类)继承属性和方法的机制。在UML 类图中,继承关系可以通过箭头表示。
4. 多态:多态性允许使用同一接口(方法)来处理不同的数据类型。在UML 中,多态性通常通过在类图中显示接口、抽象类和实现类来表示。
5. 关联与关系:关联表示类之间的关系。在UML 类图中,可以使用直线和箭头来表示类之间的关联关系。关联关系可以是单向或双向,也可以具有角色、多重性等属性。
6. 依赖关系:依赖表示一个类使用另一个类的服务。在UML 中,依赖关系用虚线表示。
7. 用例图:用例图用于表示系统与外部实体(称为参与者)之间的交互。用例图中包含用例、参与者以及它们之间的关系。
8. 时序图:时序图描述了对象之间消息的交互顺序。它显示了对象之间的时序关系,有助于理解系统中消息的传递流程。
面向对象与UML
47
消息
同步消息,描述嵌套的控制流
异步消息,描述实时系统中的并发行为
简单消息,描述简单的控制流,不考虑细节
48
状态图State Diagram
状态:状态名,[状态变量(属性值)],[活劢(事件 名 参数/劢作)] 状态转移:事件 [守卫条件] / 劢作 劢作实例
在底楼 到达 向底楼移动 向下移动 到达 下楼 上楼 向上移动
http://www. umlchina.com http://www.uml.com.cn
16
UML的发展历史
UML 2.0
UML 1.4
UML 1.3
´97.12 OMG Standard
UML 1.1
工业化 标准 集成
´96.12
UML 1.0
UML Partnres
向上
96.1 到 96.10 95年
类与对象的关系
抽象与具体的关系 组成类的每个对象都是该类的实例 实例是类的具体事物 类是各个实例的综合抽象
6
面向对象的基本特征
面向对象的基本特征
抽象
在某个重要的或想关注的方面来表示某个物体或概念 忽略主题中与当前目标无关的方面
封装
把操作和数据包围起来,对数据的访问只通过已定义的接 口来完成
打印机
52
时序图与协作图的异同
uml 基础教程 第一章--uml与面向对象
(2)尽可能隐藏对象的内部细节,与外界的 联系只能通过外部接口来实现。
2020/6/13
在讨论封装这个主题时,还牵扯到另一个相关 概念。封装意味着对象对其他对象和外部世界隐藏 了自己要做什么,因此它也被称为信息隐藏。
但是对象总是要给外部世界提供一个“接口”, 用来初始化这些操作。例如,电视机上一般都有一 组按钮或者提供带有按钮的遥控器。电视机的按钮 的按键称为接口。
2020/6/13
1.2 UML简介
1.2.1 对系统建模的必要性
UML具体有哪些作用:
• (1)对于软件系统用户,软件的开发模型向他们 描述了软件开发者对于软件系统需求的理解。
• (2)对于软件开发团队,软件的对象模型有助于 帮助他们对软件的需求以及系统的架构和功能进行 沟通。
• (3)对于软件的维护和技术支持者,在软件系统 开始运行后的相当长的一段时间内,软件的对象模 型能够帮助他们理解程序的架构和功能,迅速对软 件所出现的问题进行修复。
应的反应。事件的集合通常是固定的,用户不 能随便定义新的事件。例如,用鼠标左键单击 对象时发生的Click事件和界面被加载到内存时 发生的Load事件。
2020/6/13
四、面向过程 • 面向过程的结构化程序设计方法把相互依赖的
数据和对数据的操作相互分离,这种实质上的
第4章 面向对象与UML
2.建立用例图:
保险商务系统 签保险单
销售统计 客户 客户统计
保险销售员
图3.27 保险商务系统的用例图
3. 用例之间的关系 (1)扩展关系(extend) 描述一个用例在“基本用例”的基础上,扩 展了“基本用例”的部分功能。用(虚线)箭头上 标识“《extend》” 来表示,箭头指向被扩展的
用例。如“网上支付”用例 扩展了“支付”用
例。
《extend》
支付
网上支付
(2)包含关系( include,又称使用关系) 描述一个基本用例利用另一个用例完成某个 过程。用 (虚线)箭头上标识“《include》” 来表 示,箭头指向被包含的用例。如“订购”用例 包含了“查询”用例。包含关系通常用在:几
个用例有共同的子功能,则把该子功能独立出
百度文库
4.2.1 UML的组成
1.UML的模型元素
UML定义了两类模型元素:一类用于表
示模型中的某个概念(实体),如类、
对象、构件、用例等;另一类用于表示
模型元素之间相互连接的关系,如关联、
泛化、依赖、聚集 等。
2.UML的元模型结构(略)
3. 图和视图 (1) 图(Diagram ): UML提供了两大类的 图—静态图和动态图,共计9种不同的图。 ① 静态图(Static Diagram ) :包括用例 图、类图、对象图、构件图和部署图。 ② 动态图(Dynamic Diagram ) :包括 状态图、时序图、协作图和活动图。 (2) 视图(View) :包括用例视图、逻辑视图、 并发视图、构件视图和部署试图。
uml语言支持面向对象的主要概念
uml语言支持面向对象的主要概念
UML语言支持面向对象的主要概念及相关内容
1. 什么是UML语言?
UML(Unified Modeling Language)是一种用于面向对象软件开发的标准建模语言。它是一种图形化的方式,用来描述和设计软件系统的结构、行为和交互。UML提供了一套统一的符号和语法,使开发人员能够更好地理解、设计和沟通软件系统。
2. 面向对象的主要概念
类(Class)
•类是面向对象程序设计的基本概念之一。
•类是对象的抽象模板,描述了具有相同属性和行为的对象的共同特征。
•类具有属性(成员变量)和方法(成员函数),属性描述对象的特征,方法描述对象的行为。
对象(Object)
•对象是类的实例化,是现实世界中具体个体的抽象。
•对象具有唯一标识、状态和行为。
•对象的状态由属性值决定,对象的行为由方法实现。
继承(Inheritance)
•继承是面向对象编程的重要特性之一。
•继承允许一个类继承另一个类的属性和方法,以便在不重复编写代码的情况下扩展和修改类的功能。
•继承创建了类之间的父子关系,可以通过继承实现抽象和模块化。多态(Polymorphism)
•多态是面向对象编程的另一个重要特性。
•多态允许以父类的数据类型来引用子类的对象,提供了动态绑定和运行时多态的能力。
•多态可以增加程序的灵活性和可扩展性,使代码更易于维护和理解。
封装(Encapsulation)
•封装是将数据和方法组合到一个单元中的机制。
•封装隐藏了对象的内部细节,只对外提供访问和操作接口,通过限制直接访问保护了数据的完整性。
第1章基于面向对象的UMLppt课件全
用面向对象思想建立模型
瀑布模型 瀑布模型也被称为生存周期模型,其核心思想是按照相应的工序将问题进行简化,将系统功能的实现与系统的设计工作分开,便于项目之间的分工与协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,并且规定了它们自上而下的次序,如同瀑布一样下落。每一个阶段都是依次衔接的。
面向对象基本概念
2. 对象 对象(object)是面向对象(Object-Oriented,OO)系统的基本构造块,是一些相关的变量和方法的软件集。 可以利用对象来代表现实世界中的对象:可用一个飞行试驾程序来代表现实世界中的正在飞行的飞机,或者用机床数控程序来代表现实世界中运行的机床。 同样可以使用对象来定义抽象的概念,比如,点击按钮事件就是一个用在GUI窗口系统的公共对象,它可以代表用户点击程序界面中一个确定按钮动作。
UML概述
UML(Unified Modeling Language)的中文名称为“统一建模语言”,它是用来对软件密集系统进行可视化建模的一种语言;也是为面向对象开发系统的产品进行说明、可视化、构造和编制文档的一种标准语言。 UML拥有足够的表达能力可以处理现代软件开发中出现的所有概念。 UML是一个通用语言,不仅仅和一种通用程序设计语言一样,它也是一个庞大的标准符号体系,提供了多种的模型。
第1章 UML与面向对象概述
学生按小组完成项目设计,并以软件验收书面报
告的形式上交。
UML建模语言
教科书: 《UML面向对象设计与分析基础教程》,
牛丽平等编著 ,清华大学出版社 2007
UML建模语言
第1章 UML与面向对象
本章主要介绍什么是面向对象的分析方法 和设计方法,面向对象分析的三层设计; 然后介绍面向对象分析的工具和方法-UML, 以及UML的主要构成 Coad和Yourdon: 面向对象=对象+类+继承+通信
UML建模语言
1.1 面向对象开发 1.1.1 不同的分析与设计方法
2.结构化方法: 结构化设计与功能分解法基本相同,基于模块的概念建立设计模型, 分为概要设计和详细设计。 概要设计:确定系统中包含哪些模块以及模块之间的调用关系, 得到模块结构图(MSD)。 详细设计:描述每个模块内部的数据结构和操作流程。 结构化方法的优缺点: 优点: 强调研究问题域,并且有严格的法则。 缺点: 仍然是间接映射问题域;分析与设计的概念不一致,从分析到设计的过渡比 较困难;数据流和加工的数量太多,引起分析文档的膨胀。
UML建模语言
1.1 面向对象开发 1.1.1 不同的分析与设计方法
系统对现实世界的映射方式不同
UML建模语言
1.1 面向对象开发
不同的方法对同一应用实例(电话安装业务系统)的不同效果 结构化分析——数据流和加工
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、软件建模的用途 Ø 软件模型就是对复杂问题进行分层,从而更好地解决问
题。 Ø 有效的软件模型有利于分工与专业化生产,从而节省生
产成本。 Ø 对于软Βιβλιοθήκη Baidu人员来说,模型就好像是工程人员的图纸一样
重要。
3、软件建模的优点 Ø 使用模型便于从整体上、宏观上把握问题,以便更好的
解决问题。 Ø 软件建模可以加强软件工作人员之间的沟通。便于提早
消息是实现对象之间进行通信的一种机制,对于一 个对象可以接收不同形式的多个消息,并产生不同的结 果;相同形式的消息可以发送给不同的对象,并产生不 同的结果;在发送消息的时候可以不考虑具体的接收者 ,对象可以对消息做出响应,也可以拒绝消息,也就是 说不是必须要对消息做出响应。
通常,一个消息由以下几部分组成: (1)提供服务的对象名。 (2)服务的标识,即方法名。 (3)输入信息,即实际参数。 (4)响应结果,即返回值或操作结果。
多态性(Polymorphism)是指类中同一函数名对应 多个功能相似的不同函数,可以使用相同的调用方式来 调用这些具有不同功能的同名函数,这些同名的函数可 以是参数的个数或是类型不同,但是函数名相同,当进 行调用的时候,根据所传的数据选定相应的函数,从而 去执行不同的功能。如图2.4所示的就是多态性的表现
l 在学习面向对象程序设计之前,一般都会学习面向过 程的程序设计,例如,使用C面向过程的程序设计语言, 面向过程的语言是按流程化的思想来组织的。在这些 语言的设计思想中,通常将存放基本数据类型的变量 作为程序处理对象、以变量的赋值作为程序的基本操 作、以变量值的改变作为程序运行的状态。这种程序 设计风格存在着数据抽象简单、信息完全暴露、算法 复杂、无法很好地描述客观世界等缺点。在程序设计 过程中,为了实现有限度的代码重用,公共代码被组 织成为过程或函数。当需要代码重用时,调用已经组 织好的过程或函数。在这种应用方式中,如果软件项 目庞大,程序的调试和维护将变得异常困难。
一个类定义了一组大体上相似的对象。一个类所包 含的方法和数据描述一组对象的共同行为和属性。例如 ,窗口,车轮,玻璃等都是类的例子。如图2.1所示的是 类的例子,其中类的名字是图书Book。
封装(Encapsulation)就是把一个对象的方法和属 性组合成一个独立的单位,并尽可能隐蔽对象的属性、 方法和实现细节的过程。
l 对象(Object)是面向对象的基本构造单元。是系统中 用来描述客观事物的一个实体,一个对象由一组属性 和对属性进行操作的一组方法组成。一个类定义了一 组大体上相似的对象。一个类所包含的方法和数据描 述一组对象的共同行为和属性。
l 1.什么是对象,具有什么特征? l 2.简述面向对象的开发过程。 l 3.UML在面向对象开发过程中起到的作用是什么? l 4.什么是建模,有什么优点? l 5.什么是面向对象技术?
向对象方法的思想进行软件系统的开发过程共4个阶段: (1)系统调查和需求分析,分析问题并求解
对用户的开发需求进行调查和研究,这一个阶段通 常称之为面向对象分析,即OOA。 (2)整理问题
对第一阶段的结果进一步抽象、归类,进行具体的 设计,提出程序设计的思路和方法,这个阶段即为面向 对象设计OOD。 (3)程序实现:面向对象编程OOP。 (4)系统测试
系统开发好后,在交付用户使用前,必须对程序进 行严格的测试,这个阶段称为面向对象测试OOT。
1、软件建模的概念 模型是对现实存在的实体进行抽象和简化,模型提
供了系统的蓝图。模型过虑了非本质的细节信息,使问 题更容易理解。
为建立复杂的软件系统,我们必须抽象出系统的不 同视图,使用精确的符号建立模型,验证这些模型是否 满足系统的需求,并逐渐添加细节信息把这些模型转变 为实现。这就是软件建模。这样的一个过程就是软件模 型形成的过程,软件建模是捕捉系统本质的过程,把问 题领域转移到解决领域的过程。
对外访问时提供了4种访问控制级别: (1)public:公有访问。 (2)protected:受保护的。 (3)private:私有访问。 (4)default:默认的。
继承(Inheritance)是一种一般类与特殊类的层次 模型。继承性是指特殊类的对象具有其一般类的属性和 方法,在其之上又增加了自己的特殊属性和方法。
对象(Object)是面向对象的基本构造单元。是系 统中用来描述客观事物的一个实体,一个对象由一组属 性和对属性进行操作的一组方法组成。
对象不仅能表示具体的实体,也能表示抽象的规则 、计划或事件。主要有如下的对象类型:
(1)有形的实体:如汽车、书、计算机。 (2)作用:如医生、教师、员工、学生。 (3)事件:如飞行、事故、中断、开会等。 (4)性能说明:如车厂对车辆的性能说明,往往要 列出型号及各种性能指标等。
在继承中,需要明确这样两个概念,子类和父类。 子类:指的是通过继承创建的新类称为“子类” 或 者“派生类”。 父类:指的是被继承的类称为“基类”、“ 父类” 或“ 超类”。
如图2.2表示了父类A和它的子类B之间的继承关系, 箭头从子类B指向父类A。子类B由继承部分(C)和增加 部分(D)组成。
继承性分为单重继承和多重继承两类。 单重继承:指的是一个子类只有一个父类; 多重继承:指的是一个子类可以有多个父类。 单重继承和多重继承时父类和子类之间的关系如图2.3 所示,其中(a)表示的是单重继承,(b)表示的是多 重继承。
发现问题。 Ø 模型为代码生成提供依据,帮助我们按照实际情况对系
统进行可视化。 Ø 模型允许我们详细说明系统的结构或行为。给出了一个
指导我们构造系统的模板。并对我们做出的决策进行文
档化。
l 面向对象程序设计是一种新兴的程序设计方法,或者 是一种新的程序设计规范,它使用对象、类、继承、 封装、消息等基本概念来进行程序的设计。在面向对 象方法中需要明确什么是对象,类,以及类的相关特 征。