- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 类图和对象图
在UML中,有两种图非常重要,一种是前面我们讲过的用例图,一种就是我们今天开始要学习的类图。实际上我们平时的看到的大多数UML图都是类图,就像Martin Flower在《UML精粹》中说的那样,如果一个人在一条黑暗的胡同中向你走来,并且对你说:“嘿,要不要看一个UML图?”那么,那个图可能就是一个类图。类图是使用最广泛的一种模型,用来表述系统中各个对象的类型以及他们之间存在的各种静态关系。
要有效的理解和掌握类图,必须首先熟悉类的概念,因此我们首先还是要从面向对象思想出发,再次探究类的内涵。
5、1类的定义
5.1.1面向对象的思想
例:假设住在上海的张三要给住在蚌埠的朋友李四送一束鲜花,由于他们之间距离太远,不可能亲自买一个送过去。为了解决这个问题,张三登陆到一个电子商务网站购买一束鲜花,并通过该网站将花送给李四。而这个电子商务网站实际上就是通过我们蚌埠的某个鲜花店呢来完成这个任务。因此在整个传递过程中,各个实体之间有如下的关联关系:
显然,现实生活中的情况要复杂的多。电子商务网站可以接受很多人的订单,也可以与不同地方的鲜花店合作,以送给更多不同地方的人。因此把图5-1进行抽象得到图5-2。
图5-2很好的诠释了类和对象的概念,显然张三是一个对象,可以归到“订货人”这个类中;而蚌埠的某个鲜花店显然也是一个对象,它可以归到“商户”这个类中。因此可以说,每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。
在我们的例子中,订货人想把完成的事(给李四送鲜花)委托给电子商务网站,而电子商务网站又委托给具体的商户(蚌埠某鲜花店),具体的商户最终通过送货人完成这个行为。在实际过程中,张三首先在电子商务网站填写信息,然后电子商务平台向商户发送信息,商户安排送货人完成该动作。也就是说:在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求
这就是在面向对象中,用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想。
5.1.2 类的定义
在深入了解类的意图后,我们应该了解一下类的组成。我们知道类是对一组具有相同属性、操作、关系和语义的对象的描述。这些对象包括了现实世界中的物理实体、商业实体、逻辑事物、应用事物等,甚至也包括了纯粹概念性的事物,它们都是类的实例。关系是类之间的,语义是蕴藏的。对于一个类而言,它的关键特性是属性(成员变量)和操作(成员方法)。
类的 UML 表示是一个矩形,垂直地分为三个区,如图 1显示一个图形如何作为 UML 类建模。顶部区域显示类的名字。中间的区域列出类的属性。底部的区域列出类的操作。图 1正如我们所能见到的,这个类的名字是 Shape,在中间区域可以看到Shape 类的4个属性:origin、size、fillcolor、count,其中count有下划线,表示该属性是静态属性。在底部区域中Shape类有shape()、move()、resize()和display()4个操作(或者说方法)。方法shape()的版型为《constructor》,表示该方法是构造方法,而shape类的版型为《graphics》.
当在一个类图上画一个类元素时,必须要有顶端的区域,下面的二个区域是可以选择的,或者说是可以隐藏的(当图描述仅仅用于显示分类器间关系的高层细节时,下面的两个区域是不必要的)。
类名
类的名称是每个类中所必须有的构成元素,用于同其他的类相区别。类的命名应该来自系统的问题域,并且应该尽可能的明确、无歧异。因此,类的名字应该是一个名词,并且不应该有前缀或后缀。
类名是一个文本串,表示方法有两种:
简单名simple name :图1中的shape,它就只有一个单独的名称。
全名:也称路径名path name,就是在类名前面加上包的名字。如:
Banking::CheckingAccount , Banking是包名,CheckingAccount是包Banking中的一个类。
对于类的命名规范,UML中并没有明确定义,只要是由字符、数字、下画线组成的唯一的字符串即可。但在实际应用中,有一个普遍采用的命名原则:
采用CamelCase格式(大写字母开头,混合大小写,每个单词一大写开始,避免使用特殊符号),尽可能避免使用缩写。
类的属性
类的属性节(中部区域)列出了类的每一个属性。在UML中,类的属性的语法格式为:
[可见性] 属性名 [:类型] [‘[‘多重性[次序]‘]‘] [=初始值] [{特性}]
注意:[ ]内的部分是可选的。
根据需要,每个属性可以包括属性的可见性、属性名、类型、多重性、初始值和特性。
您可能关注的文档
最近下载
- 《GB50242-2016建筑给排水及采暖工程施工质量验收规范(条文说明)》.pdf
- 《严格规范涉企行政检查》专题讲座.pptx VIP
- 最高法院第一巡回法庭关于行政审判法律适用若干问题的会议纪要.pdf VIP
- 七年级的道德与法制下册知识点.doc VIP
- 2025年高考语文课内文言文知识梳理(统编版)《子路、曾皙、冉有、公西华侍坐》(原卷版).pdf VIP
- 苏教版初中数学八年级下册《反比例函数》单元检测试卷及参考答案.pdf VIP
- 厂区零星工程施工方案(3篇).docx VIP
- 应急管理部关于严格规范安全生产执法行为的通知专题宣贯学习.pptx VIP
- 2025年全国保密教育线上培训考试题(含答案).docx VIP
- 七年级上册《道德与法制》知识点归纳.docx VIP
文档评论(0)