第1章 面向对象方法概论共61页

合集下载

Part1_Chap01 OO方法概论2014-03-05

Part1_Chap01 OO方法概论2014-03-05
问题域客观存在的事物,以及对所要解决的问题产生 正确的理解,包括弄清事物的属性、行为及彼此之间 的关系,并找出解决问题的方法。
描述:用一种语言把人们对问题域中事物的认识、对问
题及其解决方法的认识描述出来。最终的描述必须使 用一种能被计算机读懂的语言,即计算机语言。
1.2 从认识论看面向对象方法的形成(2)
公司人员 姓名 身份证号码 · · · · · ·
由继承机 制保证
继承简化了人 们对事物的认 识和描述,非 常有益于软件 复用,是OO技 术提高软件开 发效率的重要 原因之一。
15
职员 工资 · · · · · · · · · · · ·
继承关系的语义:“is a kind of”
1.3 面向对象方法的基本概念(4)
卡车 轿车
2. 类
1.3 面向对象方法的基本概念(3)
3. 封装 把对象的属性和操作结合成一个独立的系统单位,
并尽可能隐蔽对象的内部细节。只是向外部提供接 口,降低了对象间的耦合度。
售报亭
报刊A 属 报刊B 性 … 钱箱
顾 客
服 报刊零售 务 款货清点
由封装机制保证: 数据不能被对象的 使用者直接访问。 只允许通过由对象 提供的方法或代码 访问数据。
抽象
属性是用来描述对象性质的 一个数据项。 操作是用来描述对象行为的一个 动作序列。 对象标识就是对象的名字。
1.3 面向对象方法的基本概念(2)
类是具有相同属性和操作的一组对象的集合,它 抽象与分类: 为属于该类的全部对象提供了统一的抽象描述, 抽象忽略事物的 其内部包括属性和操作两个组成部分。类的作用 非本质特征,只 是用来创建对象,对象是类的一个实例。 注意那些与当前 不同程度的抽象可得到不同层次的分类 目标有关的本质 特征,从而找出 运输工具 事物的共性。 较多地注 意事物之 把具有共同性质 间的差别 车辆 较多地忽 轮船 飞机 的事物划分为一 得到较特 略事物之 类,得出一个抽 殊的类 间的差别 汽车 火车 象的概念,叫做 得到较一 般的类 分类。

面向对象技术-01概述

面向对象技术-01概述

1.1 软件危机
图1.1引入同一变动付出的代价随时间变化的趋势
1.2 对软件开发的基本认识
软件系统开发包括:
软件开发过程
软件需求、总体设计、详细设计、代码实现、测试、最 终产品提交、软件维护及再开发。
软件开发过程中所涉及的各种资源

参与开发的各种工作人员
硬件资源 软件资源
这两部分相互作用形成了完整的开发过程。 目前软件开发中存在的问题往往是由于在这两方面上 的控制不当或协调不一致造成的。
目前使用得最广泛的软件工程方法学,分别是传统方 法学和面向对象方法学。
1.6 面向对象技术
软件开发中的两大难题
如何超越程序复杂性障碍 如何在计算机世界中自然地表示客观世界, 即对象模型
面向对象(Object-Oriented,简称OO) 的基本思想是:对问题域进行自然分割, 以更接近人类思维的方式建立问题域模型, 从而使设计出的软件尽可能直接描述现实 世界,具有更好的可维护性,能适应用户 需求的变化。
面向对象技术UML教程
第1章 面向对象技术概述
主讲:严冬梅
第一章 面向对象技术概述
1.1 软件危机 1.2 软件开发的基本认识 1.3 软件的固有复杂性 1.4 控制软件复杂性的基本方法
1.5 消除软件危机的途径
1.6 面向对象技术
1.7 面向对象领域中的基本概念
1.8 面向对象方法学
1.7 面向对象领域中的基本概念
假设类Polygon,表示二维图形,如图所示: 可以为Polygon定义操作getArea,该操作返 回对象的面积。 则我们可派生一些类,如Triangle, Rectangle和Hexagon,都是Polygon的子类。

UML第1章 面向对象方法概论

UML第1章 面向对象方法概论

1.3
面向对象开发的概念
面向对象开发是现实世界中以抽象为基础的 软件思维的一种崭新方式。面向对象开发的本质 是应用领域概念的鉴别和组织,而不是它们在一 种程序设计语言中的最终表示。
1.3.1
面向对象方法学
• • • •
分析 系统设计 对象设计 实现
1.3.2 • 对象模型 • 动态模型 • 功能模型
• 所谓“描述”是指用一种语言把人们对问题域 中事物的认识、对问题及其解决方法的认识描 述出来。最终的描述必须使用一种能够被机器 读得懂的语言,即编程语言。
1.2.2 • • • • • • 标识 分类 多态性 继承 封装 抽象
对象的特性
1.2.3
软件工程学的作用
• 软件工程学从认识事物方面看,它在分析阶段 提供了一些对问题域的分析认识方法。从描述 事物方面看,它在分析和设计阶段提供了一些 从问题域逐步过渡到编程语言的描述手段 。 • 传统的软件工程方法(图1-1)与面向对象的 软件工程方法(图1-2)比较
问题域 需求分析 总体设计和详细设计 编程和测试 软件维护
图1-1
问题域 自然语言 面向对象的编程语言 OOA OOD OOP OOT 计算机
图1-2
• 传统的软件工程方法: 1)需求分析 2)总体设计和详细设计 3)编程和测试 4)软件维护
• 面向对象的软件工程方法 1)面向对象的分析 2)面向对象设计 3)面向对象的编程 4)面向对象的测试 5)面向对象的软件维护
• 面向对象方法的主要优点是 : (1)与人类习惯的思维方法一致 (2)稳定性好 (3)可重用性好
(4)可维护性好 (5)面向对象的软件稳定性比较好 (6)面向对象的软件容易修改 (7)面向对象的软件容易理解 (8)易于测试和调试

面向对象课件第一章

面向对象课件第一章

要点二
场景二
图形绘制。假设有一个Shape接口作 为父接口,它有一个draw()方法。可 以创建多个实现类如Circle、 Rectangle等,并分别实现draw()方 法来绘制不同的图形。这样可以通过 Shape类型的引用来指向不同的实现 类对象,并调用它们的draw()方法, 从而实现多态。
要点三
将一个复杂对象的构建与它的表 示分离,使得同样的构建过程可 以创建不同的表示,适用于需要 构建复杂对象且构建过程需要灵 活控制的场景。
观察者模式
定义对象间的一种一对多的依赖 关系,当一个对象的状态发生改 变时,所有依赖于它的对象都得 到通知并被自动更新,适用于实 现事件驱动编程、GUI系统、异 步编程等场景。
尽量减小try语句块的范围,只 包含可能抛出异常的代码,避
免捕获不必要的异常。
合适的异常类型
根据具体情况选择合适的异常 类型,避免抛出过于笼统的异 常。
提供详细的错误信息
在抛出异常时,提供详细的错 误信息,有助于定位和解决问 题。
避免空catch块
避免编写空的catch块,应该至 少记录错误信息或采取其他恢 复措施。
实现方式
多态的实现通常依赖于继承和方法重写。当一个子类重写父类的方法时,如果通过父类类型的引用来调用该方法, 将会执行子类中的方法实现。此外,还可以使用接口来实现多态,即一个类可以实现多个接口,并且可以根据实 际对象的类型来调用相应的方法。
应用场景举例
要点一
场景一
动物类与子类。假设有一个Animal类 作为父类,它有一个eat()方法。可以 创建多个子类如Dog、Cat等,并分 别重写eat()方法来实现不同的吃东西 的行为。这样可以通过Animal类型的 引用来指向不同的子类对象,并调用 它们的eat()方法,从而实现多态。

面向对象方法学概述精品PPT课件

面向对象方法学概述精品PPT课件
注意:UML是一种语言规范而不是一种建模方法
用面向对象方法开发软件,通常需要建立3种形式的模 型:描述系统数据结构的对象模型,描述系统控制结构 的动态模型、描述系统功能的功能模型。 在整个开发过程中,3种模型一直都在发展完善。在面向 对象分析中,构造出完全独立于实现的应用域模型;在 面向对象设计过程中,把求解域的结构逐渐加入到模型 中;在实现阶段,把应用域和求解域的结构编成代码并 进行严格的测试验证
面向对象分析设计方法(OOAD): ▪ 兴起于20世纪80年代,从20世纪90年代起至今它已
经在分析设计领域占据了无可争议的主流地位 ▪ 1997年11月,UML被国际对象管理组织(OGM)采
纳,此后UML成了OOAD建模语言的国际标准。 ▪ UML对于OOAD中的语义、图形表示法和使用规则做
了完整而详细的定义。其建模能力超过了以往任何 OOAD方法,当然复杂性也随之膨胀。 ▪ 真正使UML流行的是Rational公司基于UML的建模 工具Rose。
每次重复都会增加或明确一些目标系统的性质,但却不是对先前工 作结果的本质性改动,这样就减少了不一致性,降低了出错的可能。 P22喷泉模型
面向对象方法的特点
1. 通用组织方法 2. 抽象 3. 封装或信息隐蔽 4. 继承 5. 多态 6. 消息通信 7. 关联 8. 复用
1. 通用组织方法
通用组织方法用于协助组织信息系统模型以及最终编写的软件。包 括: 对象及其属性或者特征。 整体和部分(is a part of)。 类和成员(is a member of) 。 2. 抽象 忽略问题域的无关部分而集中考虑关键部分的原则
第一章 面向对象方法学引论
传统方法学的缺点
僵化的瀑布模型 瀑布模型意味着生命周期各阶段间存在着严

第一章面向对象方法

第一章面向对象方法

1.类图和对象图
(b)对象图
(a)类图
a)有属性的类图
(b)有属性的对象图
类图如图1.2(a)所示,属性置于类的框符 的第2部分,用一条横线与表示类名的第 1部分隔开,类型是可选的,若给出的话, 用冒号分隔; 对象图如图1.2(b)所示,没有横线,将属 性值列于对象名下即可。

2.连接和关联
1.3.2 动态模型
对象的状态以及对象之间的相互关系如 何变化。这就产生了一种与静态结构即 对象模型相对应的动态模型,用来描述 一个系统是如何变化的。 动态模型涉及的主要概念是对象的状态 以及描述对象之间相互作用的事件

1.事件和状态
在对象模型技术中,对象的属性值和对 象之间的连接称为对象的状态。 对象之间的相互作用,导致对象状态的 一系列变化。对象从一个状态到另一个 状态的变迁称为一个事件。

消息具有如下性质:
同一个对象可以接受不同形式的多个消息,产 生不同的响应。 相同形式的消息可以发送给不同的对象。不同 的对象对其做出的响应可以是截然不同的。 消息的发送者可以不考虑消息的具体接受者。 对象可以响应消息,也可以对消息不予理会, 对消息的响应并不是必须的。

2.公有消息和私有消息

层级二:专家经验(C++/OOP)

More Effective C++中文版,侯俊杰,培生 2000. 318页 Effective C++ 2/e 中文版,侯俊杰,培生 2000.256 页 Exceptional C++中文版,侯俊杰,培生 2000.248 页

例:给出了一个类的继承结构
结构与连接 (Structure & Connection)

(一)第一章 面向对象方法概述

(一)第一章 面向对象方法概述

面向对象分析与设计第一章面向对象方法概述1.1面向对象方法学⒈什么是面向对象?面向对象(object oriented, OO)是一种风范(paradigm),是认识系统和描述系统的一种方法论。

该方法认为,系统是由一系列相互联系、相互作用的对象(object)组成的。

⒉为什么要面向对象?⑴面向对象技术将带来软件生产方式的根本改变。

⑵面向对象技术对提高软件的质量和生产效率效果显著。

⒊面向对象方法的特征①类(class)②继承(inheritance)③多态性④一般性⑤对象标识⑥状态保持⑦消息⑧信息/实现隐藏⑨封装1.2 面向对象方法学的发展历史1.2.1 OOPL对面向对象程序设计语言的产生影响较大的语言有:·Simula 67;·CLU, Pascal, Ada, Modula-2;·SmallTalk·Objective-C, Object Pascal, Eiffel;·C++;·Java.1.2.2 几种流行的面向对象方法BoochGrady BoochOMT:对象建模技术(Object Modeling Technique, OMT)James RumbaughOOSE (object oriented software engineering)Ivar JacobsonFusionHewlett-Packard (D.Colema, 1994)OOA/OODCoad/Yourdon1.3 UML简介统一建模语言(Unified Modeling Language, UML)UML 是一种基于面向对象的可视化图形建模语言,用于对软件系统进行说明、构造和文档建立。

1.3.1 UML的发展过程第一阶段:专家的联合行动1994年,Grady Booch 和James Rumbaugh 在Rational 软件公司开始创建UML的工作。

第1章 面向对象方法概论

第1章 面向对象方法概论

信息建模法(information modeling) 信息建模法(information modeling)
强调对信息实体建模,而不是对象建模。 对象只有属性,而无服务。 父类与子类之间也只有属性继承。 没采用消息通讯。
有限状态机方法
基于现实的行为视图,状态是这类系统的构造块,并且所操 作的数据是独立于状态的。 基于系统状态的处理。 这一方法没有涉及数据管理。
面向对象方法的要点
(3) 对象的属性与服务结合为一体,成为一 个独立的、不可分的实体,对外屏蔽其内部 细节。(对象的封装) (4) 对事物进行分类。把具有相同属性和相 同服务的对象归为一类,类是这些对象的抽 象描述,每个对象是它的类的一个实例。 (分类) (5) 复杂的对象可以用简单的对象作为其构 成部分。(聚合)
信息建模=实体(对象)+属性+关系+父类型 /子类型+关联对象 由实体-关系法(E-R方法)发展而来。 与数据库设计有很深的渊源。 核心概念是实体和关系。
– 实体描述问题域的事物,含有属性; – 关系描述事物之间在数据方面的联系,也可以带有属 性。
发展之后的方法也把实体称作对象,并使用了类 型和子类型的概念,作为实体(对象)的抽象描 述。
当时软件职业者和研究人员认为数据是 “企业应 用”中最稳定的部分,并且关系数据库有一个极 ” 好的数学基础,在二十世纪八十年代大多数公司 使用数据建模方法开发软件。 结构化的方法实际上帮助开发者处理数据,但数 据建模方法不能帮助开发者较好的控制功能。
信息建模法(information modeling) 信息建模法(information modeling)
数据流法(data 数据流法(data flow approach) approach)

面向对象课件(第一章)

面向对象课件(第一章)

属性赋值
在创建对象时,可以为对 象的属性赋值,以初始化 对象的属性值。
方法调用
对象可以调用其所属类的 方法,以执行相应的操作。
属性和方法
属性
访问修饰符
属性是对象的状态信息,它描述了对 象的基本特征。
类的属性和方法可以通过访问修饰符 来控制它们的可见性和访问权限。
方法
方法是对象的行为,它定义了对象可 以执行的操作。
继承
继承是从已有的类派生出新的类,新类继承了父类的属性和方法,并且 可以添加或覆盖父类的行为。继承有助于代码的重用和扩展。
03
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。
多态可以提高代码的灵活性和可扩展性,使程序能够更好地适应变化。
面向对象编程的基本概念
类(Class)
类是对象的模板或蓝图,它定义了对象的属性和方法。类是一种抽象 的概念,它描述了一组具有相似属性和行为的对象的共同特征。
封装的使用方式
使用访问修饰符
在面向对象编程语言中,可以使 用访问修饰符(如public、
private、protected)来控制对 象的属性和行为的可见性,实现
封装。
定义接口
通过定义接口,规定对象的行为 和属性,实现对象之间的交互和
通信。
继承和多态
通过继承和多态等面向对象特性, 可以在不改变原有代码的基础上 对对象进行扩展和维护,实现封
能。
增强代码可维护性
02
如果父类的代码发生变化,只需修改一处,即可影响所有继承
自该父类的子类。
实现多态性
03
通过继承,可以实现多态性,使得子类可以以自己的方式实现
父类的方法,提高代码的灵活性和可扩展性。

面向对象程序设计 1_面向对象方法概述

面向对象程序设计 1_面向对象方法概述

(1) 重用性 传统软件生产中缺乏大粒度、可重用的构件。基 本处于手工作业阶段。 (2) 复杂性 传统程序中数据与其操作是相分离的,开发大程 序时,常因数据的一个的小小变动而导致意想不到的 错误,甚至整个程序的崩溃。以致出现过所谓的“软 件危机”。 (3) 可维护性 传统程序中数据与操作相分离的结构不利于程序 的维护。
1.1
什么是面向过程程序设计方法 本节主要内容
1.1.1 面向过程程序设计方法概述 1.1.2 面向过程程序设计方法的局限性
1.1.1 面向过程程序设计方法概述
面向过程程序设计方法是流行很广泛的程序设计 方法。如C、PASCAL、FORTRAN、Ada等语言都是采用面 向过程程序设计方法。 在面向过程程序设计中,程序设计者不仅要考虑程 序要“做什么”,还要解决“怎么做”的问题。 首先要明确程序的功能,程序设计的重点是如何设 计算法和实现算法。 在面向过程程序设计中,普遍采用结构化程序设计 方法,即所有的程序由顺序、分支和循环三种基本结构 组成。
3.传统的程序设计难以适应各种新环境
当前,并行处理、分布式、网络和多机系统等,已 经或将是程序运行的主流方式和主流环境。 传统的程序设计技术很难适应这些新环境。 综上所述,传统的面向过程的结构化程序设计不能 够满足计算机技术的迅猛发展的需要,软件开发迫切需 要一种新的程序设计方法的支持。
1.2
什么是面向对象程序设计方法 本节主要内容
例1.1 利用面向过程程序设计方法计算圆和三角 形的面积。设圆的半径为r,圆周率取3.14,则圆面积 的计算公式为cs=3.14*r*r;设三角形的高为h,底为w, 则三角形面积的计算公式为ts=0.5*h*w。
用面向过程程序设计方法编写一个计算面积的C语言程序。 #include<stdio.h> double circle(double r){ return 3.14*r*r; } //定义函数circle double triangle(double h,double w) //定义函数triangle { return 0.5*h*w; } int main() //定义主函数main { double r,h,w,cs,ts; printf(“Input r,h,w:”); //调用函数,输出字符串 scanf("%lf%lf%lf",&r,&h,&w); //调用函数scanf,输入圆的半径和三角形高和底的值 cs= circle(r); //调用函数circle ts= triangle(h,w); //调用函数triangle printf("The area of circle is:%f\n",cs);//调用函数输出圆的面积 printf("The area of triangle is:%f\n",ts); //调用函数输出三角形的面积 return 0;}

第1章面向对象程序概述精品PPT课件

第1章面向对象程序概述精品PPT课件
面向对象方法是开发计算机软件的一种方法。 这种方法比面向过程的方法可提高可用性,适用 于图形界面的使用,减少模块间的依赖关系,有 利用程序的调试和修改。该方法是一种采用了类、 对象、继承和多态等新概念的新方法。
将数据及对数据的操作方法封装在一起,作为 一个相互依存、不可分离的整体——对象。对同 类型对象抽象出其共性,形成类。
9
2020/10/29
广州大学华软软件学院软件工程系
1.2 面向对象程序设计的基本思想
3.封装
封装是指将对象的属性和行为结合成为一个独 立的封装体。把对象的属性和服务结合成一个独立 的系统单位。
封装是一种数据隐藏技术,在面向对象程序设 计中可以把数据和与数据有关的操作集中在一起形 成类,将类的一部分属性和操作隐藏起来,不让用 户访问,另一部分作为类的外部接口,用户可以访 问。类通过接口与外部发生联系,用户只能通过类 的外部接口使用类提供的服务,而内部的具体实现 细节则被隐藏起来,对外是不可见的。
•面向过程的结构化程序设计 采用模块分解与功能抽象,自顶向下,分而治
之。以服务(功能)为中心。
优缺点:复杂的任务-分解成子任务 ;可重用性 差。
•面向对象的程序设计 以数据为中心,数据相对于功能而言,具有更
强的稳定性 。代码重用。
4
2020/10/29
பைடு நூலகம்
广州大学华软软件学院软件工程系
C++与C语言的关系
广州大学华软软件学院软件工程系
1.2 面向对象程序设计的基本思想
现实世界中的对象一般具有以下特性: (1)每一个对象必须有一个名字以区别于其他对 象。 (2)用属性来描述对象的某些特征。 (3)有一组操作,每个操作决定对象的一种行为。

面向对象方法学PPT课件

面向对象方法学PPT课件
第17页/共74页
(4) 消息(message) 消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通
常,一个消息由下述3部分组成: 接收消息的对象;
消息选择符(也称为消息名); 零个或多个变元。
(5)方法(method) 方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操
1. 关联 关联表示两个类的对象之间存在某种语义上的联系。例如,作家使用计算机,我们 就认为在作家和计算机之间存在某种语义连接,因此,在类图中应该在作家类和计
作的算法,响应消息的方法。在C++语言中把方法称为成员函数。
第18页/共74页
(6)属性(attribute) 属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个
实例都有自己特有的属性值。 在C++语言中把属性称为数据成员
(7)封装(encapsulation) 从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。
7. 继承(inheritance) 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面
向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。
第20页/共74页
实现继承机制的原理 第21页/共74页
当一个类只允许有一个父类时,也就是说,当类等级为树形结构时,类的继承是单 继承;当允许一个类有多个父类时,类的继承是多重继承。多重继承的类可以组合 多个父类的性质构成所需要的性质,因此功能更强、使用更方便;但是,使用多重
把应用域和求解域的结构都编成程序代码并进行严格的测试验证。
第26页/共74页
4 、 对象模型
对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体 的对象以及对象彼此间的关系的映射,描述了系统的静态结构。对象模型为建立动

第一章面向对象技术概述精品PPT课件

第一章面向对象技术概述精品PPT课件
• 对问题域进行自然分割,以更接近人类思维的方式建立
问题域模型,从而使设计出的软件尽可能直接地描述现 实世界,具有更好的可维护性,能适应用户需求的变化。
武汉大学国际软件学院
13
1.5.1 面向对象 VS 结构化
结构化方法
面向对象的方法
问题域
问题域
自然语言 结构化分析
自然语言 数据流图 数据字典 OO方法 需求工程
Grady Booch著,姚淑珍等译,机械工业出版社。
武汉大学国际软件学院
2
第一章 面向对象技术概述
武汉大学国际软件学院
3
内容
• 软件危机与软件工程 • 对软件开发的基本认识 • 软件的固有复杂性 • 控制软件复杂性的基本方法 • 面向对象技术 • 面向对象领域中的基本概念
武汉大学国际软件学院
4
15
1.5.1 面向对象 VS 结构化
• 书店借书系统的顶层数据流图
会员信息被注销信息
借书单
补交押金
会员借书卡
罚款单
读者
续卡请求 注册信息
书店借书系统
卡到期 拒绝借或还书请求
借书请求
图书
还书请求 注销会员请求
会员信息
查询会员信息 登录请求
登录信息
读者
借书管理员
武汉大学国际软件学院
16
1.5.1 面向对象 VS 结构化
需求变化,其功能变化,所以系统的 使用系统抽象出用例图,获取需求;如需求变化,
基础不稳固
对象的性质相对功能稳定,系统基础稳定
分析模型
面向过程的数据流图DFD、 实体—关 把问题作为一组相互作用的实体,,显式表示实体来自系图ERD表示分析模型;
间的关系

第1讲 面向对象概述1PPT课件

第1讲 面向对象概述1PPT课件

bool push(Stack &s, int i) //进栈操作 { if (s.top == STACK_SIZE-1) { printf( “Stack is overflow.\n”);
return false; } else { s.top++;
s.buffer[s.top] = i; return true; } }
1.2程序设计方法的发展历程
一.面向过程的结构化程序设计方法
20世纪60年代诞生、七八十年代广泛使用的 程序设计方法,语言工具有:PASCAL、C 等。
设计思路:自顶向下,逐步求精;程序结构 按功能划分为若干个基本模块,这些模块形 成一个树型结构;各模块间的关系尽可能简 单,在功能上相对独立;每一模块内部均是 由顺序、选择、循环三种基本结构组成;其 模块化实现的具体方法是使用子程序。
③这种方法集抽象性、封装性、继承性和多态 性于一体,易于实现模块化、可重用、易维护、 易扩充等功能。
优点:
程序模块间的关系更为简单,程序模块的独立 性、数据的安全性就有了良好的保障。
通过继承与多态性,可以大大提高程序的可重 用性,使得软件的开发和维护都更为方便。
结构化程序设计的方法是把程序看作是工 作在数据上的一系列过程或函数的集合。 程序的定律是:
1) 结构化方案
#include <iostream.h> #define STACK_SIZE 100 struct Stack //栈的结构体 { int top; int buffer[STACK_SIZE]; };
void init(Stack &s) //对栈初始化的函数 { s.top = -1; }
bool pop(Stack &s, int &i) //出栈操作 {

面向对象方法概论

面向对象方法概论

习题第1章面向对象方法概论1、与传统开发方法相比,面向对象方法有什么优点?2、查阅资料,进一步讨论UML与面向对象方法的关系。

3、封装的目的是什么?在面向对象方法中封装的目的是如何达到的?4、针对你过去使用传统开发方法所建造的系统的不足,总结一下问题的原因。

考虑如果使用面向对象方法,在哪些方面可能会获益。

5、面向对象方法的一个主要原则是抽象。

思考一下在工作和学习中你经常在什么场合下运用抽象原则。

第2章什么是面向对象分析1、简述OOA模型及OOA过程。

2、为什么要进行OOA?3、简述问题域与系统责任间的关系。

4、OOA是如何应对需求变化性的?5、为什么把用类图构建的模型称为基本模型?6、你对本章讲述的分析面临的主要问题有过什么实际感受?请举例说明。

第3章建立需求模型——用况图1、用况之间的关系可为包含关系、扩展关系或继承关系,三种关系之间有相同之处吗?它们之间的区别又在哪?2、论述用况图在面向对象方法中的地位。

3、怎样理解把系统内外的交互情况描述清楚了,就明确了系统边界?4、对于3.3.1节中的收款用况,补充用信用卡付款和使用优惠卡的描述。

5、通常自动售货机会按用户的要求进行自动售货,供货员会巡查向其内供货,取款员会定时取款。

针对上述要求,请建立用况图,并描述各个用况。

6、现要开发一个购书积分系统,其中至少要具有申请积分卡、增加积分、查看积分和按积分奖励功能。

请建立用况图,并描述各个用况。

第4章建立类图1、论述类与对象之间的关系以及关联与链之间的关系。

这四者之间还有什么联系吗?2、在什么情况下使用组合关系进行建模?3、总结继承关系的用途。

4、图4-44表明,一名教师可以在一个或多个系中任职,而且在二者间使用的是聚合关系。

在二者间可以使用组合关系吗?请解释原因。

5、举例说明类继承结构中的重载与多态。

6、面包是由面包片组成的。

面包与面包片之间的关系是聚合还是组合?7、一本书含有若干章,一章有若干节,一节由一些段落和图组成,一个段落由一些句子组成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档