1第7章类图地址:安徽合肥中国科大2013年春讲授:董兰芳研究方向:科学计算可视化图形、图像处理模式识别Telephone:0551-3603484Email:lfdong@ustc.
edu.
cnHomepage:http://staff.
ustc.
edu.
cn/~lfdong中国科学技术大学视觉计算与可视化实验室2内内容容中科大计算机系图形图象实验室董兰芳http://staff.
ustc.
edu.
cn/~lfdong/类是包装信息和行为的项目,是面向对象的重要特征.
类图是面向对象分析和设计的核心,提供了丰富的表示法.
类图有着很强的表达能力.
本章将介绍如何使用类图描述系统的静态视图、解释类图以及建模类之间的关联和继承关系等内容.
另外,类图也可以描述类的属性和行为,对模型中各种成分约束.
不同的面向对象方法对这些概念使用了不同的(甚至相互冲突的)术语,这样容易造成误解.
使用UML来描述这些概念,有利于对各种术语的统一,从而更加有利于对问题的理解和交流.
3内内容容类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统47.
17.
1类和对象类和对象在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素.
分类是人类分析和解决问题的重要方法.
对象是指与应用问题有一定关联的某个事物,更准确地说,是对某个事物的一种抽象描述.
对象可以是物理的实体、概念或软件.
三种不同的对象57.
17.
1类和对象类和对象对象之间的区别是由它们固有的存在性所决定的,而与它们的特征是否相同无关.
两个不同的对象67.
17.
1类和对象类和对象类是对一类具有相同特征的对象的描述.
对象的基本特征可以归纳为两类,即对象的属性和行为,一个类描述了此类对象的属性和行为,任何对象都是某个类的实例.
所以,类共享相同的属性、操作、关系和语义的对象集合的描述,定义了每个对象的结构和行为,是创建对象的模板.
类和类的实例对象7内内容容类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统87.
27.
2寻找类寻找类从用例视图中寻找类,是从用例的事件流开始,察看事件流中的名词以获得类.
在事件流中,名词可以分为四种类型:角色、类、类属性和表达式.
也可以检查序列图和协作图中的对象,通过对象的共性来寻找类.
另外,序列图和协作图中每一个对象都要映射到相应的类.
类可以分为三种类型:实体类(Entity)边界类(Boundary)控制类(Control)97.
27.
2寻找类寻找类类可以分为三种类型:实体类(Entity)边界类(Boundary)控制类(Control)实体类保存要放进永久存储体的信息.
边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口以及与其他系统的接口.
控制类负责协调其他类的工作.
107.
27.
2寻找类寻找类可以通过以下的方法寻找类:(1)从事件流中寻找名词或名词词组(或交互图中的对象),将性质相同的归类成为一类,或性质内容值正负相反的归类成为一类.
(2)去除不恰当的与含糊的类别,去除应是归类为属性的项目.
(3)给这些类取个合适的名字,在现实系统实现时,可以参照真实系统相关的命名规约.
11内内容容类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统127.
37.
3属性和操作属性和操作类所包装的信息称为类的属性.
如何确定属性呢(1)注意在需求中的名词如用户名密码等,或者是存在许多特定可列举数,如红、黄和绿.
属性不会影响架构.
(2)可以通过查阅用例文档或需求文档资料来获得属性,事件流中的名词有一些是属性.
如果已经定义好数据库结构,则表中的字段就是属性.
类有四种不同的操作作用于属性:实现、管理、访问和帮助.
137.
37.
3属性和操作属性和操作类的属性类的操作147.
3.
17.
3.
1属性属性例名字属性在概念层,客户的名字属性表示客户有名字;在说明层,这一属性表示客户对象能告知你它的名字,并有一些设置名字的方法;在实现层,它表示为客户的名字安排了一个物理存储区(也可称做一个实例变量或一个数据成员).
属性可以包括属性的名称、类型和缺省值.
157.
3.
17.
3.
1属性属性可视性名称:类型=缺省值{约束特性}(1)可见性:表示该属性对类外的元素是否可见.
不同属性具有不同的可见性.
常用的可见性有公有、受保护和私有三种,在UML中分别用"+"、"#"和"-"表示.
(2)名称:是一个字符串,表示属性的名称.
(3)类型:定义属性的种类.
它可以是一个基本数据类型,例如整数类型、实数类型布尔类型等,也可以是用户自定义的类型.
在实现层,一般它与所涉及的程序设计语言有关.
(4)缺省值:属性的初始值.
(5)约束特性:用于描述对此属性的约束,例如"{只读}"说明该属性是只读.
167.
3.
17.
3.
1属性属性不同属性值的对象177.
3.
27.
3.
2操作操作操作描述了类的动态行为,它可以有多种不同的实现方法.
在说明层,通常主要是给出那些重要的公有操作.
在这个阶段,无须显示那些仅用于处理属性的操作,因为通过推断就可以知道这些操作是必需的.
然而,有时可能需要指明哪些属性是只读的或是不可修改的(意味着属性值永远不可改变).
187.
3.
27.
3.
2操作操作在UML中,操作的语法定义如下:可见性名称(参数表):返回类型表达式{约束特性}其中:(1)可见性:"+"表示公有操作,"#"表示受保护的操作,"-"表示私有操作.
(2)名称:是一个字符串,表示操作的名称.
(3)参数表:其语法与属性的参数相同,参数的个数是任意的.
(4)返回类型表达式:依赖于语言的描述,此项为可选项.
(5)约束特性:用以描述对此操作的约束.
197.
3.
37.
3.
3可视性可视性一个对象具有很多属性,对于另外一个外部对象来说,某些属性应该被隐藏.
可视性是一项列举值其可能值为public、protected、private、或者implementation让某元素能限定其名称空间外的其它元素如何使用之.
207.
3.
37.
3.
3可视性可视性可视性为public时,意谓着所属的型别(或类别)之外界皆可以使用之.
可视性为private时,意谓着所属的型别(或类别)之外界皆无法使用之.
但是有一例外,其朋友型别可以存取private的属性和运算.
而子类则无法使用到父型别内的private属性和运算名称.
可视性为protected时,意谓着所属的型别(或类别)之外界无法使用之.
但是有一例外,当某一型别与此型别有朋友关系时,则该朋友型别(或类别)可存取protected属性和运算.
而子型别则可使用到父型别内的protected属性和运算名称.
217.
3.
47.
3.
4类和类的实例类和类的实例长方形的坐标227.
3.
47.
3.
4类和类的实例类和类的实例类的长式表示类的短式表示237.
3.
47.
3.
4类和类的实例类和类的实例学生类247.
3.
47.
3.
4类和类的实例类和类的实例ClassPoint{intnX;//点的x坐标intnY;//点的y坐标intnColor;//颜色值voidmove(intx,inty);//将当前点移到x,y处intGetX();//获取当前点的x坐标intGetY();//获取当前点的y坐标intSetX();intSetY();}Pointmypoint;//点类的一个对象mypoint257.
3.
47.
3.
4类和类的实例类和类的实例类(Class)把对象的属性和操作封装起来,通过封装,使得程序员分为:(1)类创建者:专注于实现类.
(2)客户程序员:使用类的用户,专注于使用类.
这样做的好处如下:(1)避免客户程序员插手他们不应当接触的部分(通过public,private,protected控制客户的访问).
(2)方便地修改被隐藏的内部工作方式,而不影响客户程序员.
26内内容容类和对象寻找类属性和操作*CRC卡继承关联注意事项实例:选课系统27内内容容类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统287.
57.
5继承继承_7.
5.
17.
5.
1概括概括面向对象的一个非常重要的基本特征,就是引入了概括(Generalization)的概念和继承(Inheritance)关系.
概括是一般化和具体化描述之间的类关系.
具体化的描述构建在一般化描述之上,并对它进行扩展.
具体化的描述具有一般化描述的所有属性成员和关系,并可能包含新增的信息.
如抵押贷款,是贷款中的更细化一种.
抵押贷款包含了贷款的所有基本特性并且增加了许多新的描述,如使用房屋来作为贷款的抵押.
一般化的描述被称为双亲,多个层次中的该类元素称为祖先.
更加具体化的描述被称为孩子.
多个层次中的该类元素称为后代.
297.
57.
5继承继承_7.
5.
17.
5.
1概括概括概括有如下两个目的:(1)概括的一个目的是使后代的实例可以用于任何祖先被声明使用的地方.
(2)概括的另一个目的是共享对祖先的描述,并允许对元素进行增量描述,这被称之为继承.
307.
5.
27.
5.
2继承继承每种可概括的元素都具有一系列可继承的属性.
对于任何模型元素它们包括约束,对于分类还包括特征属性、操作和信号接收及关联.
参与孩子继承所有祖先的可继承特征,它的完整特征集是所继承特征集和直接定义特征集的总和.
对于分类拥有相同签名的属性只能被直接声明一次或继承,否则会存在冲突模型,换句话说,在祖先中声明的属性不能在子孙中重复声明.
操作可以在若干类中声明,只要它们的形式一致,具有相同参数约束和含义.
317.
5.
27.
5.
2继承继承类的继承关系327.
5.
37.
5.
3多态性多态性多态是面向对象设计中的一种机制,可分为编译时的多态性和运行时的多态性.
通过多态,一个通用接口就可以实现不同的行为特征.
以在屏幕上作图为例.
可以通过这个系统在屏幕上画各种几何图形,包括线、矩形、圆、正方形.
这些图形元素都有自己的颜色,并且都有根据属性显示形状的功能.
各种图形具有共通的属性和操作,这些属性和操作包括图形的颜色、线型以及对图形的旋转、移动等.
可以设计一个基类Shape,让其它的类继承Shape类.
一般还希望Shape类具有以下的作用:(1)为外界调用提供统一的接口.
(2)便于以后图形类的扩充.
337.
5.
37.
5.
3多态性多态性画图系统中类的继承关系Shape*aShape;Line*aLine;aLine=newLine;aShape=oLine;aShape->draw();//调用的是类Line的方法.
34内内容容类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统357.
67.
6关关联联一个简单的订货系统关联表示类的实例之间存在的某种关系,通常用一个无向线段表示.
367.
67.
6关关联联多重性只有一个10或更多0.
.
*0或更多0.
.
*0或10.
.
1特定的范围2.
.
4不连续的多重性2,4,6377.
6.
17.
6.
1聚集聚集聚集描述的是所谓"…的一部分"、或者"包含…"这样一类关系,即部分与整体之间的关系.
譬如说,发动机和轮子是汽车的一部分.
387.
6.
27.
6.
2组合组合组合是关联的更强的形式,该关系中组合具有管理组成部分的特有责任,如它们的分配和释放.
窗口的组成397.
6.
37.
6.
3关联的分析关联的分析可以使用下列的的指导方针列出暂时性的关联关系:(1)动词与介词词组.
(2)两个或两个以上的类别有相依的关系,就可能有关联.
(3)隐含的关系.
(4)一般的常识.
然后依据以下的规则去除虚假的关联:(1)如果有一类别被去除,则与之相关的关联也应去除.
(2)现在不考虑与外界领域关联或是实现时才会产生的关联.
(3)关联是说明结构的属性而不是在说明事件.
407.
77.
7注意事项注意事项正确使用类图其他417.
7.
17.
7.
1正确使用类图正确使用类图(1)在项目的初始阶段,不应使用所有的符号.
(2)应养成在项目的不同开发阶段,使用不同观点来画类图的习惯.
(3)应该把精力放在关键的领域,不要为每个事物都画一个模型.
(4)最好只画几张较为关键的图,经常使用并不断更新修改.
(5)使用类图的最大危险是过早地陷入实现的细节.
427.
7.
27.
7.
2其他其他正确定义接口和抽象类.
注意引用对象和值对象的异同和画类图的习惯.
不变性.
参数化类.
437.
87.
8实例实例44总总结结类和对象寻找类属性和操作CRC卡继承关联注意事项实例:选课系统
柚子互联官网商家介绍柚子互联(www.19vps.cn)本次给大家带来了盛夏促销活动,本次推出的活动是湖北十堰高防产品,这次老板也人狠话不多丢了一个6.5折优惠券而且还是续费同价,稳撸。喜欢的朋友可以看看下面的活动详情介绍,自从站长这么久以来柚子互联从19年开始算是老商家了。六五折优惠码:6kfUGl07活动截止时间:2021年9月30日客服QQ:207781983本次仅推荐部分套餐,更多套餐可进...
火数云怎么样?火数云主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、专属服务器托管、带宽租用等产品和服务。火数云提供洛阳、新乡、安徽、香港、美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以及国际顶尖品牌硬件。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经...
快云科技已稳步运行进两年了 期间没出现过线路不稳 客户不满意等一系列问题 本司资质齐全 持有IDC ICP ISP等正规手续 有独特的网站设计理念 在前几天刚是参加过魔方系统举行的设计大赛拿获最佳设计奖第一名 本公司主营产品 香港弹性云服务器,美国vps和日本vps,香港物理机,国内高防物理机以及美国日本高防物理机 2020年的国庆推出过一款香港的回馈用户特惠机 已作为传家宝 稳定运行 马上又到了...
90后女孩给猫做汉服月入7万为你推荐
深圳微信营销-苹果与阿里巴巴合作意在ApplePayapple.com.cn苹果官网序列号查询phpweb破解宽带无线网是WPAPSK会被破解吗accessdenied重装时系统都会提示access denied波音737起飞爆胎飞机会爆胎?特朗普吐槽iPhone为什么那么多人吐槽iphone大飞资讯单仁资讯的黄功夫是何许人?欢迎光临本店宾馆欢迎语都有哪些? 越多越专业越好骑士人才系统公司要采购一套人才系统源码,看了一下骑士和嘉缘的,谁家的比较好一点呢?托就不要回答了。艾泰科技艾泰路由器设置!!!
域名购买 网站空间域名 台湾虚拟主机 万网域名空间 128m内存 12u机柜尺寸 777te 个人域名 idc资讯 速度云 爱奇艺vip免费试用7天 cloudlink 789 监控服务器 德讯 测速电信 可外链的相册 如何登陆阿里云邮箱 netvigator 中国电信宽带测速 更多