UML类之间的关系
名称 |
说明 |
UML |
关联关系 |
是一种结构化关系,通常将一个类的对象作为另一个类的属性,如:老师和学生、丈夫和妻子。 包括双向关联、单向关联、自关联和多重性关联。 |
public class LoginForm{ private JButton loginButton; } public class JButton{ } |
聚合关系 |
表示一个整体与部分的关系,是关联关系的一种。成员对象是整体对象的一部分,但是成员对象可以独立存在。例如:计算机与鼠标。 通过一个空心菱形加箭头表示。 |
public class PersonGroup { public Person person; public PersonGroup(Person person) { this.person = person; } } public class Person { public Person() { } } |
组合关系 |
表示类之间整体和部分的关系,是关联关系的一种成员类的存在依赖于整体类。例如:人的头和嘴巴。 通过一个实心的菱形加箭头表示。 |
public class Head{ private Mouth mouth; public Head() { mouth = new Mouth(); } } public class Mouth{ } |
依赖关系 |
是一种使用关系,即表示一个事物使用另一个事物。体现为某个类的方法使用另一类的对象作为参数。例如:驾驶员开车。 通过带箭头的虚线表示,由依赖的一方指向被依赖的一方。 |
public class Driver{ public void drive(Car car){ Car.move(); } } public class Car{ Public void move(){ } } |
泛化关系 |
即继承关系。用于描述父类与子类之间的关系。例如:植物和树。 通过带空心三角形的直线来表示。 |
public class Person{ protected String name; Protected int age; public void move(){ } Public void say(){ } } Public class Student extends Person{ private String studentNo; public void study(){ } } Public class Teacher extends Person{ private String teacherNo; public void teach(){ } } |
实现关系 |
是一种类与接口的关系,表示类实现了接口,类中的操作实现了接口中所声明的操作。 通过带空心三角形的虚线来表示。 |
public interface Vehicle{ public void move(); } Public class Ship implements Vehicle{ public void move(){ } } Public class Car implements Vehicle{ public void move(){ } } |