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