`
michaeltangbin
  • 浏览: 267939 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

类与类之间存在以下关系

    博客分类:
  • uml
 
阅读更多

类与类之间存在以下关系:

    (1)泛化(Generalization)

    (2)关联(Association)

    (3)依赖(Dependency)

    (4)聚合(Aggregation)

 

 

 

1.泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。

[具体表现]

父类 父类实例=new 子类()

[UML图](图1.1)

图1.1 Animal类与Tiger类,Dog类的泛化关系

[代码表现]

[代码表现]

java 代码
  1. class Animal{}   
  2.   
  3. class Tiger extends Animal{}   
  4.   
  5. public class Test   
  6. {   
  7.     public void test()       
  8.      {   
  9.          Animal a=new Tiger();       
  10.      }   
  11. }   

 

 

 

 

 

2.依赖(Dependency)

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

[具体表现]

依赖关系表现在局部变量,方法的参数,以及对静态方法的调用

[现实例子]

比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作

[UML表现](图1.2)

图1.2 Person类与Screwdriver类的依赖关系

[代码表现]

java 代码
  1. public class Person{       
  2.     /** 拧螺丝 */      
  3.     public void screw(Screwdriver screwdriver){       
  4.          screwdriver.screw();       
  5.      }       
  6. }     

 

 

 

 

3.关联(Association)

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

[具体表现]

关联关系是使用实例变量来实现

[现实例子]

比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司

[UML图] (图1.3)

图1.3 公司和员工的关联关系

[代码表现]

java 代码
  1. public class Company{       
  2.     private Employee employee;       
  3.     public Employee getEmployee(){       
  4.         return employee;       
  5.      }       
  6.     public void setEmployee(Employee employee){       
  7.         this.employee=employee;       
  8.      }       
  9.     //公司运作       
  10.     public void run(){       
  11.          employee.startWorking();       
  12.      }       
  13. }     

 

 

 

 

4.聚合(Aggregation)

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

[具体表现]

与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。

[关联与聚合的区别]

(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。

聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。

(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。

[UML图](图1.4)

图1.3 电脑和组件的聚合关系

[代码表现]

java 代码
  1. public class Computer{       
  2.     private CPU cpu;       
  3.     public CPU getCPU(){       
  4.         return cpu;       
  5.      }       
  6.     public void setCPU(CPU cpu){       
  7.         this.cpu=cpu;       
  8.      }       
  9.     //开启电脑       
  10.     public void start(){       
  11.         //cpu运作       
  12.          cpu.run();       
  13.      }      

 

分享到:
评论

相关推荐

    IT ATA UML认证试题

    2. 两个类之间的关联表示他们之间存在一种不适于继承的逻辑关系。在关联关系的表示图元的两端,可以表示参与关联的()特性。 A、约束 B、可见性 C、角色名 D、多重性 3、(D)是一种不包含操作的实现部分的特殊类。...

    类与类关系的UML图与代码表现

    一:二:三:四:五:类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系:(1)泛化(Generalization):狗与动物(空箭头)(2)关联(Association):公司与员工有特定的某种关系(实线)(3)依赖(Dependency):...

    论文研究 - 失眠患者的功能障碍信念与睡眠态度和睡眠结构之间的关系:一项对照研究

    而且,失眠患者的DBAS-16与睡眠效率之间存在显着的正相关(r = 0.34,p <0.05)。 其中,睡眠后果的估计因素与睡眠效率显着正相关(r = 0.34,p <0.05)。 因此,本研究得出以下结论:通过比较,发现失眠症...

    C++派生类与基类的转换规则

    基类与派生类对象之间有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。 具体表现在以下几个方面: 派生类对象可以向基类对象赋值...

    中国能源消费碳排放与经济增长的动态关系

    对我国能源消费、碳排放与经济增长之间的动态关系进行了实证研究,并得出以下主要结论:协整检验结果表明能源消费、碳排放与经济增长三者之间存在协整关系,从协整关系式可以看出能源消费对碳排放的影响要远大于经济...

    数据课设报告书x_数学分析结课报告

    一个表达式与一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式Expression的操作。 设计要求: 假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,...

    论文研究 - 科威特州教育机构负责人的人格大五因素及其与情商的关系

    结果表明:1)人格五大因素中的四个之间存在正相关关系,而与经验因素相反。 2)在“五大因素”的程度与作为能力的情绪智力的程度之间不存在关系。 3)情绪智力量表的总程度与作为能力的情绪智力的程度之间不存在...

    数据课设报告书-表达式类型的实现(完整的课设报告+源代码)

    一个表达式与一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式Expression的操作。 设计要求: 假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,...

    论项目经理与部门经理之间的关系

    我们知道,从PMI体系来看,公司项目组织结构是分以下几类的:职能型、项目型、矩阵型。于是,除了完全的项目型,组织结构中就存在项目经理、部门经理两个较色。两个角色之间是怎么样关系?下面尝试做个剖析。这种组织...

    P2pProject

    适合初学者参考,高手不要见笑哦!

    论文研究 - 类风湿关节炎患者的肠道糖酶

    最终的多变量分析表明,疾病的存在与肠寄生虫病和类风湿关节炎的存在之间存在显着的统计学关系,VAS无疲劳(p = 0.0488)和VAS当前最佳健康指数(p = 0.0012)。 结论:这项研究表明,类风湿关节炎人群中肠骨酶的...

    人力资源管理培训-员工关系管理PPT下载.rar

    员工关系与员工关系管理 员工关系管理的目的、重要性 员工关系管理的现状 “员工关系”一词源自西方人力资源管理体系。在西方,最初由于劳资矛盾激烈、对抗严重,给企业正常发展带来了不稳定...

    中介者模式(Mediator Pattern)原理图

    中介者模式(Mediator Pattern)是一种...中介者模式适用于对象之间存在复杂网状结构关系,且这些关系导致依赖关系混乱和难以复用的场景。通过引入中介者对象,可以简化对象间的交互,提高系统的可维护性和可扩展性。

    芯片类培训教程.pptx

    04芯片的封装----------常见的封装介绍 SOP封装与SOT封装 SOP一般是8脚或以上(14、16、18、20脚等)器件的贴片封装形式,尺寸较大些,而SOT是5脚或以下(3脚、4脚)器件的贴片封装形式,尺寸较小些 芯片类培训教程...

    山东大学数据结构课设表达式类型 源.cpp

    一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现 基于二叉树表示的算术表达式Expression的操作。 假设算术表达式Expression内可以含有变量(a-z),常量(0-9)和二元运算符(+,-,*,/,^...

Global site tag (gtag.js) - Google Analytics