详解UML类图(持更)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TGBTrial/article/details/84325950

类在类图中的表示
在UML中,类图属于静态图中的一种,用于定义系统中的类,包括描述类的内部结构和类之间的关系。主要是用于描述系统的静态结构的。现在我们在下面来看一下如何表示一个类。

public class Pen{
	private string color;
	private int model=1;
	
	public string getColor(){
		return name;
	}
	public int getModel(){
		return model;
	}
	public void setColor(String color){
		this.color=color;
	}
	public void setModel(int model){
		this.model=model;
	}
}

我们在这里定义了一个类,名为Pen,还定义了两个字段color和model,另外还定义了color和model的set、get方法。现在我们再来看看如果是在UML中,该会如何表示?
在这里插入图片描述
我们可以看到一个矩形被分为三份,第一层为类的名字;第二层为类的属性;第三层为类的方法;从图中我们可以看出color和model都是私有的,前边都有一把小锁。

类之间的关系
类与类之间一共有六种关系分别为:泛化(Generalization)、实现(Realization)、依赖(Dependence)、关联(Association)、聚合(Aggregation)、组合(Composition)
好好学习英语哦

泛化关系
泛化关系在Java中也被称为继承关系,在UML中我们用带有空心三角形的直线来表示。
举例:分别定义Person、student、teacher各为一个类,那他们的关系为下图:
在这里插入图片描述
实现关系
在UML中我们用带空心三角形的虚线来表示。
举例:由于student和teacher都是一种职业,所以我们定义一个类,里面有一个职业的方法

public class ICareer{
	void career();
}

则他们三个之间的关系如下图所示:
在这里插入图片描述
如果是定义一个接口的话:

public interface Icareer{
	void career()
}

在UML类图中的表示如下图:
在这里插入图片描述
则他们之间的关系图为:
在这里插入图片描述
依赖关系
依赖是一种比较弱的关系,一般指一个类使用另一个类。在网上搜索资料时,看到一个很好的例子:如果在现实中规定学生如果捡到钱,那么就要交给警察叔叔。所以当学生捡到钱以后,学生与警察叔叔之间就是一种依赖关系,交给警察叔叔以后就不再是这种关系了,而且捡到钱是偶然事件。
我们在student类中加入一个交钱的方法;添加一个新类为policemen,并加入收钱的方法。则在UML中如下图表示:
在这里插入图片描述
在UML中依赖关系用带着箭头的虚线来表示,箭头指向被依赖对象,也就是这里的policemen。

聚合关系
聚合关系是一种特殊的关联关系,聚合关系强调的是整体和部分的关系,其中部分是可以脱离整体而存在的。比如:羊群和一只羊的关系就是聚合关系,因为羊脱离羊群也是可以独立存在的。在UML类图中,聚合关系用带着空心菱形的直线来表示,如下图:警官与制服
在这里插入图片描述

组合关系
组合关系也是一种特殊的关联关系,它与聚合很像,也是强调整体与部分的关系,但不同的是部分是无法脱离整体而存在的。比如学生用手捡到钱,其中手是学生的一部分,并且不能脱离学生而单独存在。那手和学生之间就是组合关系,组合关系用带实心的菱形直线来表示,其中菱形指向整体,如下图:
在这里插入图片描述
之前一直对这几种关系的关系强度不是特别的清晰,但是经过这次的整理和理解,发现从泛化、实现、依赖、关联、聚合、到组合。对我来说
泛化:继承属性
实现:继承方法
依赖:有求于他人
关联:有血缘关系
聚合:你大爷、你和大家族
组合:你、你脑子和你这个人
关系是越来越强的,如果各位大佬还有其他的见解,欢迎留言,不胜感激。

猜你喜欢

转载自blog.csdn.net/TGBTrial/article/details/84325950