ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UML 类图

2022-04-09 10:31:06  阅读:139  来源: 互联网

标签:关系 对象 类图 关联 UML 属性


 

 

一、什么是 UML 类图

UML 类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型,它用来描述系统中类的内部结构、类与类之间的关系,可以简化人们对系统的理解

 

二、UML 类图单个类的表示方式

单个类的类图使用包含类名、属性(field)和方法(method)且带有分割线的矩形来表示,例如下面的这个类图

属性的完整表示方式: 可见性 名称 :类型 [ = 属性的默认值]
方法的完整表示方式: 可见性 名称(参数列表) : 返回值类型

属性/方法的可见性有四种表现方式

- : private

什么都不写: default

# : protected

+ : public

所以上面的类图可以使用如下代码来描述

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class User {     private Integer id;     String name;     protected Integer age;     public Double height;       private void eat(){         System.out.println("eat a lot of thing makes me stronger");     }       void drink(){         System.out.println("I like drink a cup of tea");     }       protected String play(){         return "play makes me happy";     }       public Integer think(){         System.out.println("think make us clever");         return 10086;     } }

  

三、UML 类图类与类关系的表示方式

1、关联关系

关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象

1.1、单向关联

一个类的属性是另外一个类的对象,表现为 单向箭头指向被使用的类

1.2、双向关联

两个类的属性都持有对方类的对象,表现为 双向箭头或者是直线

1.3、自关联

一个类的属性就是这个类的对象

 

1.4、聚合关系

聚合关系也属于关联关系,是一种强关联关系,是整体和部分之间的关系

表现为: 空心菱形指向整体

聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在,例如学校与老师的关系,学校里面有很多老师,如果学校停办了,老师并不会受到影响,依然继续存在

1.5、组合关系

组合关系类似于聚合关系,也是整体和部分之间的关系,它是一种更强烈的聚合关系,整体对象可以控制部分对象的生命周期,一旦整体对象不存在了,那么部分对象也将不存在,例如人的身体和手臂的关系,如果人的身体不存在了,那么手臂也不会存在

表现为: 实心菱形指向整体

 1.6、依赖关系

依赖关系是一种使用关系,它是对象之间 耦合度最小 的一种关联方式,它是一种临时性的关联,在代码中某个类通过局部变量、方法的参数、或者静态方法的调用来使用另外一个类的某些方法来完成一些功能

 

2、继承关系

继承关系是对象之间 耦合度最大 的一种关系,表示为一般和特殊的关系,是父类与子类的关系

表现为: 带空心三角箭头使用实线由子类指向父类

 

3、实现关系

实现关系是接口和实现类之间的关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有抽象操作

表现为: 带空心三角箭头使用虚线由子类指向父类

 

标签:关系,对象,类图,关联,UML,属性
来源: https://www.cnblogs.com/manmanblogs/p/16121038.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有