UML类图

1. 类属性的可见性

描述类的属性的可见性:

UML中,可见性分为4级

  1. public 公用的 :用+ 前缀表示 ,该属性对所有类可见

  2. protected 受保护的:用 # 前缀表示,对该类的子孙可见

  3. private 私有的:用- 前缀表示,只对该类本身可见

  4. package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见

2. UML类与类之间的关系

关系有: 依赖、泛化(继承)、实现、关联、聚合、组合

2.1. 依赖关系(Dependence)

依赖关系: 是一种使用关系,即一个类实现需要另一个类的协助,所以要尽量不使用相互依赖。

代码表现: 局部变量、方法的参数或者静态方法调用

箭头及指向: 带箭头的虚线,指向被使用者

具体体现:

  1. 类中用到了对方;
  2. 如果是类的成员属性;
  3. 如果方法的返回值类型;
  4. 是方法接收的参数类型;
  5. 方法中使用到。
2.1.1 实例代码
public class PersonDao {}public class IDCard {}public class Person {}public class Department {}public class PersonServiceBean {private PersonDao personDao;public void save(Person person);public IDCard getIDCard(Integer personId) {return null;}public void modify() {Department department = new Department();}
}
2.1.2 UML类图

2.2 泛化(继承)关系(Generalization)

2.2.1 介绍:

泛化关系:是一种继承关系,表示一般与特殊的关系,它指定了子类如何转化父类的所有特性和行为。他是依赖关系的特例。

箭头指向: 带三角空心箭头的实线,箭头指向父类。

2.2.2 代码示例
public abstract class A {public void save(Object c) {}public void delete(Object id) {}
}public class B extends A {}
2.2.3 UML图

2.3 实现关系(Implementation)

2.3.1 介绍

实线关系:是一种类与接口之间的关系,表示类是接口所有的特性和行为的实现。他是依赖关系的特例。

**箭头指向:**带空心三角形箭头的虚线,箭头指向接口。

2.3.2 代码示例
public interface A {public void delete(Integer id);public void save(Object a);
}public class B implements A {public void delete(Integer id) {}public void save(Object a) {}
}
2.3.3 UML图

2.4 关联关系(Association)

2.4.1 介绍

**关联关系:**是一种拥有的关系,他使一个类知道另一个类的属性和方法;如:老师和学生。丈夫和妻子关联可以使双向,也可以单向。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

**代码体现:**成员变量

**箭头指向:**带空心菱形的实心线,指向被拥有者。

2.4.2 UML图

2.5 聚合关系

2.5.1 介绍

**聚合关系:**是整体与部分的关系,且部分与整体可以分离而单独存在,如车和轮胎是整体与部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

**代码体现:**成员变量

**箭头指向:**带空心菱形的实心线,菱形指向被拥有者

2.5.2 示例代码
// 汽车类
public class Car {private Tyre tyre;private void setTyre(Tyre tyre) {this.tyre = tyre;}
}
// 轮胎类
public class Tyre {}
2.5.3 UML图

2.6 组合关系

2.6.1 介绍

**组合关系:**是整体和部分关系,但部分不能离开整体而单体存在,如公司和部分是整体和部分的关系,没有公司就不存的部分。

组合关系是关联关系的一种,是比聚合关系还要强的关系,他要求普通的聚合关系中代表整体的对象负责代表

2.6.2 示例代码
// 人
public class Person {private Head head = new Head();
}
// 脑袋
public class Head {}
2.6.2 示例代码
// 人
public class Person {private Head head = new Head();
}
// 脑袋
public class Head {}
2.6.3 UML图

UML类图属性和相关关系相关推荐

  1. UML类图的6大关系

    <小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...

  2. [转] UML类图的几种关系总结

    在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition ...

  3. UML类图、6种关系

    目录 一,类图 二,类的6种关系 1,泛化 2,实现 3,组合 4,聚合 5,关联 6,依赖 三,总结 一,类图 类图中,每个类由3个部分组成,上面的是类名,中间的是属性,下面的是方法. 属性和方法可 ...

  4. UML类图中的六大关系:关联(单向、双向、自关联)、聚合、组合、依赖、继承、实现

    一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个A类,它包含c.d两个属性,以及methodA方法. 那么 ...

  5. UML类图中类之间的关系,聚合,组合,依赖总结

    下面我就根据下面这个图来讲解一下UML类图. 类图 首先,看动物那个矩形框,他就表示为一个类(Class).类图分为三层: 第一层显示类的名称 如果是抽象类,就用斜体表示 第二层显示类的特性,通常是字 ...

  6. 图文并茂,详细讲解UML类图符号、各种关系说明以及举例

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...

  7. 详解:UML类图符号、各种关系说明以及举例

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...

  8. UML类图之六种基本关系详解

    文章目录 0. 什么是UML? 1. 依赖关系(Dependence) 1.1 什么是依赖关系? 1.2 上代码 1.3 用类图描述关系 1.4 依赖小结 2. 泛化关系(Generalization ...

  9. 【UML】例析UML类图的几种关系

    最近在学习UML,别的先不提,英文单词到是学会了不少..既然Rational Rose就是英文版的,索性我就所有东西都按照英文意思来理解,慢慢来,当初学VB的时候我也不是一下子就能记住Label的.. ...

最新文章

  1. 关于AI,腾讯又有大动作!开发者该如何应对?
  2. EPPLUS之外的选择,EXCEL的操作(NPOI,POI(java))
  3. c# html文件转换word,C#实现word转换成html文档 源码
  4. profibus dp协议_轻松搞定PROFIBUS故障诊断与排除
  5. java rtmp录制视频_red5-rtmp-push
  6. 答应我,别再靠!= null走天下了可以吗?
  7. Thinkpad连续响4遍4个短嘀故障记录
  8. LRC软件测试自学,LRC滚动歌词制作编辑器
  9. 国际金融互联报文规范SWIFT之银行识别代码BIC Code介绍
  10. abb机器人goto指令用法_abb机器人编程指令,机器人编程的程序指令
  11. uniapp本地存储
  12. 【串口服务器】的桥接模式
  13. 花落谁家---再见熊节
  14. 度秘语音引擎app_「资源」9个(实时)语音转文字APP分享(推荐收藏)
  15. sheet_name
  16. java文本压缩算法_java 什么算法压缩文件最小
  17. 绝缘栅型n沟道场管_N沟道增强型绝缘栅场效应管的工作原理
  18. C++模板函数的声明和定义是否可以分开?
  19. 计算机辅助教学毕业论文,计算机辅助教学管理——本科毕业论文规范化排版
  20. Android自定义schema,android hybird 实现:自定义schema

热门文章

  1. el-tree 改变label
  2. C语言实现通讯录(含文件保存)
  3. 小程序FMP优化实录,附小技巧
  4. Modern Family Season 1#01
  5. Vue2基础篇-21-非单文件组件
  6. 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统
  7. destoon模板安装方法
  8. java实现阿里云OSS上传下载
  9. FFmpeg入门详解之12:Elecard Stream Analyzer码流分析工具
  10. Mac os 上最简便的企业微信和微信双开方法