類与类关系的UML图与代码表现(版).docVIP

類与类关系的UML图与代码表现(版).doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
類与类关系的UML图与代码表现(版)

类与类关系的UML图与代码表现 一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Association) :公司与员工有特定的某种关系 (实线) (3)依赖(Dependency) :人依赖螺丝刀 (虚线箭头) (4)聚合(Aggregation) : 电脑和CPU,主板 (菱形空间头) 详细展开 : 一 .泛化(Generalization) 表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。 一般泛化的关系是从子类指向父类的: 父类 父类实例=new 子类() 1/**?*//** 2*??动物类 3*/ 4public?class?Animal{ 5 6}???? 1/**?*//** 2*?老虎类? 3*/ 4public?class?Tiger?extends?Animal{ 5 6}?? 1/**?*//** 2*?一个测试类 3*/ 4public?class?Demo{???? 5????public?void?test()?{ 6????????//老虎的实例?也属于动物类型? 7????????Animal?animal?=?new?Tiger();?? 8????}???? 9}? 二 .依赖(Dependency) 对于两个相对独立的对象,当一个对象(螺丝刀)负责构造另一个对象(人)的实例,或者一个对象(人)依赖另一个对象(螺丝刀)的服务时,这两个对象之间主要体现为依赖关系。 下面这个例子显然属于后者 :人要做一个拧螺丝的动作,他就要依赖于 螺丝刀对象,因为只有螺丝刀对象才提供拧螺丝的服务。 ?1/**?*//** ?2?*?说明?:人?这个?类? ?3?*/ ?4public?class?Person?{ ?5????/**?*//** ?6?????*?人拥有的一个??拧螺丝??的??动作?依赖于螺丝刀这个类 ?7?????*?@param?screwdriver?:螺丝刀类 ?8?????*/ ?9?????public?void?screw(Screwdriver?screwdriver){? 10????????//螺丝刀类提供了拧螺丝这个服务 11????????screwdriver.screw();???? 12????}?? 13} 三 .关联(Association) 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 关联关系是使用实例变量来实现 比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司 ?1/**?*//** ?2?*?公司 ?3?*/ ?4public?class?Company{??? ?5????//员工 ?6????private?Employee?employee; ?7 ?8????/**?*//** ?9?????*?公司运作 10??????*/ 11????public?void?run(){???? 12????????employee.startWorking();???? 13????} 14???? 15????public?Employee?getEmployee(){???? 16????????return?employee;???? 17????}???? 18????public?void?setEmployee(Employee?employee){???? 19????????this.employee=employee;???? 20????}?? 21}? 四 : 聚合(Aggregation) 当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。 [关联与聚合的区别] (1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。 聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。 (2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档