您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
类与类关系的UML图与代码表现
 
作者: zyme007
 
   次浏览      
2008-12-19
 
编辑推荐:
本文主要介绍类图的概念,希望对您有所帮助。
本文来源于:blogjava.net,由火龙果软件Linda编辑,推荐。

一 :

二 :

三 :

四 :

五 :

类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系:

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

 1public 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    }
    
14}  

 

   
次浏览       
 
相关文章

用户手册:EA Helper
自然语言自动化生成图
使用iSpace进行多人协作建模
基于模型的软件复用(MBSR)
 
相关文档

AUTOSAR_TR_BSW UML模型建模指南
UML时间图建模(基于EA)
UML 模型框架(基于EA)
UML序列图编写规范
 
相关课程

UML+EA+面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于UML和EA进行系统分析设计

最新活动计划
C++高级编程 12-25 [线上]
白盒测试技术与工具实践 12-24[线上]
LLM大模型应用与项目构建 12-26[特惠]
需求分析最佳实践与沙盘演练 1-6[线上]
SysML建模专家 1-16[北京]
UAF架构体系与实践 1-22[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...