毕业设计(论文)外文资料翻译(学生用)计算机1_第1页
毕业设计(论文)外文资料翻译(学生用)计算机1_第2页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)外文资料翻译 (学生用)计算机1 Jim Arlow,lla Neustadt. UML 2 and the Unified Process: (用外文与) PracticalObject-Oriented Analysis and Design,Second Edition .北京:人民邮电出版社. 2006 附件 1 :外文资料翻译译文 第七章对象和类 7.2什么是对象 UML参考手册Rumbaugh 1中把对象给定义为 带有良好定义的边界、封装 了状态和行为的具体实体,类的实例”。 我们可以想象把对象看作数据和函数的内聚包。 一般而言,要获得对象的数据部分 的唯一方法就是

2、通过调用那些可用的对象函数。我们把这些函数称之为方法。我们所知 道的隐藏对象的数据部分在函数这层之下,就是封装或数据隐藏。 UML同一些OO语 言一样并没有强制封装,因为一些OO语言不要求封装。然而,用来隐藏对象的数据部 分在操作或方法的背后归结到底是良好的 OO风格。 每一个对象它自己就是某个类的实例, 并且这个类中定义了类的公共特征的 (属性 和方法)集被所有实例所共享。实际上类和类元的思想是非常简单的。考虑一下打印机 的类型为“Epson Photo 1200”其中描述了这个类所有特定实例的特性,例如一个放在 我们桌面上的特定的打印机 “Epson Photo 1200 S/N 4312

3、0098 类的特定实例被称为对 象。 我们再多想一点以下 Epson打印机对象的示例,我们将会看到它包含有特定的特1 性,这些特性是所有对象的公共特征。 标识一一这是在时间和空间上对象的唯一存在。它把该对象同所有其他对象区分 开,在我们的示例中,这打印机的序列号能够被用做打印机的标识,标识指向我们桌面 上的特定打印机的标识符,并且是代表那个对象的唯一标识。序列号是一种好的方法来 说明物理对象标识,并且我们使用这个相似的原则,对象引用的思想,来说明用于 00 分析和设计中的每一个软件对象的标识。当然,在真实的世界中,并不是所有的对象都 具有序列号,但是他们仍然可以具有唯一标识。 因为它们具有特定

4、的时间坐标和空间坐 标。与此相似,在00软件系统中,每一个对象都具有一些类型的对象引用。 状态 -这由对象在特定时刻的属性值以及由该对象到其他对象的关系所确定。 表7-1给出了一个不完整列表,该打印机所经历的状态。你能够看出,从这些对象状态 是如何依赖于它的属性值的以及与它与其他对象的联系的。 行为一一打印机能够为我们做的特定的事情: switch0n() switchOff() printDocument() pageFeed() clearlnkJetNozzles() changelnkCartridge() 表7-1 对象状态 类属性 对象的 属性值 关系 On Power On N/

5、A Off Power Off N/A OutOfBla blackInkC Empty N/A ckInk artridge OutOfCo colorInkC Empty N/A 2 lourInk artridge Connecte N/A N/A 连接到计算机 d 的对象 NotConn N/A N/A 没有连接到计 ected 算机的对象 从对象中调用的方法将引起一个在一个或多个属性值的改变或者其引起到其他对 象的关系发生变化,这组成了状态迁移。这是对象从一个状态到另一个状态有意义的变 化。再次考虑表7-1,显然,对象状态也能够影响它的行为。例如,如果打印机中没有 墨水了(对象状态=

6、OutOfBlacklnk),那么当对象调用方法 printDocument()将引发一 个出错信号,因此,printDocument()的实际行为是有状态依赖的。 一个操作是某个行为的规格说明。一个行为的实现被称为方法。 7.2.1封装 正如我们在前面已经提到的,对象的标识是某一种唯一的句柄,通常一个内存地址, 由实现它的语言提供。从现在开始,我们将把这些句柄作为对象引用。你不需要担心在 00分析中这些如何实现一一你可以简单地假设,每一个对象都是具有唯一的标识符, 并且它被实现技术所管理。在设计中,你可能需要考虑对象引用的实现,如果你的目标 语言是00语言,例如C+,它允许你直接地操纵被称为

7、指针的特定类型的对象引用。 在图7-2中,我们表示了强调封装的对象概念图。注意:图 7-2并不是UML图。 你在后面将看到针对对象的 UML语法。 对象的状态是该对象在任何特定时刻的一组属性值(当前是 1234567801, “ Jim Arlow”,300.00)。一般地说,一些属性值始终保持固定不变,而另一些将随时间的改 变而改变。例如,账户号码和名称极不可能发生改变, 但我们希望的是余额能够稳步上 涨!3 由于余额是随着时间推移而改变,同时我们又看到该对象的状态是因时而变。 例如, 如果余额是负数,那么我们可以说该对象处于状态 Overdrawn。随着余额从负数到零 的改变,对象本身自然

8、地发生了显著的变化 它使得状态从Overdrawn迁移到状态 Empty。而且随着Account的对象余额从零到正数的改变,它使得对象从状态 Empty 迁移到状态InCredit。那里可能比这存在着更多的状态迁移。实际上,任何方法调用都 会导致对象本性实质性改变,从而产生状态迁移。 UML为我们提供了一个强大的建模 技术集,它被称为状态图,用于建模状态变化 - 我们将会在第21章学习它们。 任何对象的行为基本上是 它能为我们作什么”你将能够看到图7-2中的对象提供 的操作,它们列在表7-2中。 这个操作集说明了该对象的行为。注意,在调用某些操作( deposit。withdraw。、 set

9、Owner()时,将改变属性值并且可能引发状态迁移。其他操作( getOwner()并没 有改变对象的任何属性值,因此这些将不会引发状态迁移。 封装或数据隐藏是 OO编程的主要优点之一,它能够导致更加健壮和可扩展的软 件。在这个简单Account示例中,一个该对象的用户不需要关注隐藏在该对象中的数据 结构,dep 67801 getO、 Se 12345 withd 4 仅仅需要关心这些对象能够作什么 一一换句话说,只需要关心它为其他的对象提供了哪 些相应的服务。 表7-2 操作 语义 deposit 在Account对象中存款增加 balance () 属性值 withdra 在Accoun

10、t对象中提款减少 balance w() 属性值 getOwne返回Account对象所有者 查询操 r() 作 setOwne改变 Account对象所有者 () 722消息机制 对象是具有属性值和行为的,但你如何把这些对象放在一起创建软件系统呢?对象 协作来执行系统的功能。这意味着,对象形成链接到其他的对象并且通过这些链接来回 发送消息。当一个对象接收到消息时,看起来向它查看它的操作集以了解是否存在一个 这样的操作,它的签名匹配该消息的签名。如果它存在,那么它调用这个操作(参见图 7-3)。这些签名包括消息(或者操作)名称、参数类型和返回值。5 Ba nk 对象 Accou nt 对 发送

11、信息 象响应,调用 图 00系统的运行期结构由很多对象组成,它们被创建,持续一段时间,然后可能被 销毁。这些对象通过相互传递消息来调用另一个对象的服务。 这是根本不同的结构与过 程软件系统相比, 过程软件系统是随着时间的推移, 通过功能的顺序应用来处理数据的。 7.3 UML对象符号 UML对象图标是一个带有两个分栏的方框一一图7-4是个已给示例。这个顶部分 栏包含对象标识符,总是带有下划线。这非常重要,因为类的 UML符号与对象的符号 非常相似。正确慎重地使用下划线来消除任何混淆建模元素无论是类还是对象的情况。 UML是非常灵活的,关于如何在对象图上展示对象。对象标识符能够区分是以下 任何一

12、种情况。 单独的类名称 - 例如,:Account这表明你具有一个匿名对象或者那个类的实 例 (也即, 你正在观察Account的一个实例, 但你没有标识或者不关心它是哪一个特定 的实例) 。只存在特定的一个对象时,当在给定图的时候,常常使用匿名对象。如果你 需要显示一个相同类的两个对象,那么你应该给每一个对象赋予名称用来区别它们。 单独的对象名称 例如,jimsAccoun。这标识一个特定对象,但是没有标识它 到底是属于哪个类的。你还没有发现所有的类时候,这个符号是有用的,在早期的分析 时期。 对象名称后接类名称,彼此之间用冒号来分割。你可以把冒号读作:是类的实例” 因此,在图7-4中,你能

13、够这样读图 - 对象jimsAccount是类Account的一个实例。6 对象类 属性属性属性 图 对象通常以混合大小写来命名,以小写字母开头,特殊字符诸如空格和下划线是要 避免使用的。这就是我们所知的lowerCamelCase格式,原因是结果单词以小写字母开 始,并且具有驼峰。 从7.2节中,你知道一个类定义了一组对象的属性和操作。因为相同类的所有对象 都具有相同的操作集合,操作举例在类图表中,而不是对象图表中。 属性可以选择性地显示在对象图标的下面分栏中。 你选择的属性要显示出来必须已 被命名并且可以具有可选的类型和值。属性的命名也是按照lowerCamelCase格式来的 7.3.1对象属性值 每一个对象属性值具有如下的格式: name:type=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论