`

UML类图符号带图介绍

阅读更多

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。
类与类之间存在以下关系:
(1)泛化(Generalization)
(2)关联(Association)
(3)依赖(Dependency)
(4)聚合(Aggregation)

UML图与应用代码例子:
1.泛化(Generalization)
[泛化]
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。
[具体表现]
父类 父类实例=new 子类()
[UML图](图1.1)

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

[代码表现]




class Animal{}   
class Tiger extends Animal{}   
public class Test   
{   
    public void test()   
     {   
         Animal a=new Tiger();   
     }   
}  

2.依赖(Dependency)
[依赖]
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
[具体表现]
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
[现实例子]
比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作
[UML表现](图1.2)




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

[代码表现]


public class Person{   
    /** 拧螺丝 */  
    public void screw(Screwdriver screwdriver){   
         screwdriver.screw();   
     }   
}  

3.关联(Association)
[关联]
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
[具体表现]
关联关系是使用实例变量来实现
[现实例子]
比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司
[UML图] (图1.3)

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

[代码表现]
public class Company{   
    private Employee employee;   
    public Employee getEmployee(){   
        return employee;   
     }   
    public void setEmployee(Employee employee){   
        this.employee=employee;   
     }   
    //公司运作   
    public void run(){   
         employee.startWorking();   
     }   
}  
(4)聚合(Aggregation)
[聚合]
当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。
[具体表现]
与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
[关联与聚合的区别]
(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的 对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存) 拆了下来。
[UML图](图1.4)

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

[代码表现]
public class Computer{   
    private CPU cpu;   
    public CPU getCPU(){   
        return cpu;   
     }   
    public void setCPU(CPU cpu){   
        this.cpu=cpu;   
     }   
    //开启电脑   
    public void start(){   
        //cpu运作   
         cpu.run();   
     }   
}   
分享到:
评论
1 楼 piabo2161978 2011-02-15  

相关推荐

    UML类图符号 UML类图符号 UML类图符号

    UML类图符号 UML类图符号 UML类图符号 UML类图符号 UML类图符号 UML类图符号

    UML类图符号总结

    UML类图符号总结,包括UML类图符号的使用与定义,供大家一起共同分享学习。

    UML类图的各符号含义及表示

    类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形。由这些基本的图形进行组合构成了类图的基本符号。这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度。越向右耦合度...

    UML类图符号简介.docx

    UML类图符号简介.docx

    UML类图符号

    UML类图符号,很清楚地讲解了类与类之间的关系。

    UML类图符号简介[归纳].pdf

    UML类图符号简介[归纳].pdf

    UML类图符号简介

    介绍了UML类途中各种符号的作用,对了解类的含义及C++编程有一定提高作用。

    UML类图关系大全

    清晰简单的UML标识说明,对UML建模初学者十分有用。

    UML类图怎么画学习示例

    UML类图(Class diagram)是统一建模语言(UML)的一种图形表示,用于显示系统的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系。 在类图中,每个类由一个包含类名、属性和方法的矩形表示,...

    UML 类图的形式化及分析

    摘 要 统一建模语言( %+/) 是一种通用的图形化建模语言, 在面向对象系统的分析和设计中, 它已...文章采用 符号来表示 %+/ 类图的组成元素的语法和语义及其映射 关系, 最后对 %+/ 类图的一些性质进行分析和验证。

    UML符号说明文档

    常见的UML符号说明,比较适合编写论文时找不见官方的描述

    基于Common Logic 的UML 类图形式化及验证

    Common Logic 是一阶逻辑的一个特殊拓展,语法简洁,无符号,易读易掌握易使用,语义精确,满足一阶模型理论,相较于其它逻辑语言,更适合UML 类图进行形式化规约。因此,提出采用Common Logic 对UML 类图进行形式化...

    UML类图入门,看完基本懂了怎么画图了

    本文来自于csdn,文章主要以一个实例为入口介绍了uml类图的基本图示法等相关内容,希望对您的学习有所帮助。举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。 首先,看动物矩形框,它代表一...

    UML九种建模图-类图

    UML九种建模图--类图 UML提供了九种建模图,其中类图是最常用的一种。类图是一种静态模型,主要用来显示系统中的类、接口以及它们之间的静态结构和关系。这些关系包括关联、泛化和依赖等。类图是面向对象系统建模的...

    UML元素和UML关系图符号简介

    本文重点讨论UML类图中的元素和UML关系图符号。类图是最常用的UML图,它用于描述系统的结构化设计。其中包括类关系以及与每个类关联的属性及行为。类图能出色地表示继承与合成关系。为了将类图作为一种高效的沟通...

    UML 微软例图(用例图类图序列图状态图活动图组件图)

    UML成为"标准"建模语言的原因之一在于,它与程序设计语言无关。(IBM Rational的UML建模工具被广泛应用于J2EE和.NET开发。...最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。

    UML类图解义

    我给你举一个例子,来看这样一幅图,其中就包括了UML类图中的基本图示法。”UML类图图示样例大鸟:“首先你看那个‘动物’矩形框,它就代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用...

    软件体系结构与设计模式课堂笔记.docx

    1.软件思想UML:UML类图符号(依赖、关联、聚合、组合、泛化)、UML类符号相互之间的区别(聚合与组合、关联和聚合、关联和依赖、泛化和实现)。 2.Sping Boot:Spring Boot环境配置、Spring Boot核心配置和注解、...

Global site tag (gtag.js) - Google Analytics