L
L
LearnJava
Search…
UML图

1. 什么是UML图

UML(Unified Modeling Language)统一建模语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

2. UML类图的组成

UML类图由三部分组成:类名、属性和方法。
eg:
1
class Person {
2
3
private String name = "personName";
4
private int age;
5
6
public String getName() {
7
return name;
8
}
9
public void setName(String name) {
10
this.name = name;
11
}
12
public int getAge() {
13
return age;
14
}
15
public void setAge(int age) {
16
this.age = age;
17
}
18
19
}
Copied!
类名:类名就是类的名称,如果是抽象类的话就在右下角加一个(Abstract)标识。
属性:就是类的成员变量,可见性表示为public(+)、protected(#)、private(-)。在UML类图中可以表示属性的可见性、名称、类型和默认值,格式如下([] 里面的表示可选,可以有可以没有):
1
可见性 名称:类型 = 默认值
Copied!
方法:可见性同属性,格式如下:
1
可见性 名称(参数列表) : 返回类型
Copied!

3. UML类图关系

UML类图之间的主要关系有6种:继承关系,实现关系,依赖关系,关联关系,聚合关系,组合关系。

3.1 继承关系

子类和父类之间的关系,可以用带空心三角形的实线表示。
如果一个Teacher类继承上面的Person类:
1
class Teacher extends Person {
2
3
private int teacherNum;
4
5
public String teach() {
6
7
return "teaching";
8
9
}
10
}
Copied!
UML图可以表示为:

3.2 实现关系

类和接口之间的关系,可以用带空心三角形的虚线表示。
如下一个Dog类和一个Cat类实现了Animal接口:
1
public interface Animal {
2
public void eat();
3
}
Copied!
1
public class Dog implements Animal {
2
@Override
3
public void eat() {
4
System.out.println("狗狗吃狗粮");
5
}
6
}
Copied!
1
public class Cat implements Animal {
2
@Override
3
public void eat() {
4
System.out.println("咪咪吃猫粮");
5
}
6
}
Copied!
UML可以表示为:

3.3 依赖关系

3.4 关联关系

3.5 聚合关系

聚合关系使用空心菱形表示。
聚合是一种特殊的关联(Association)形式,表示两个对象之间的所属(has-a)关系。所有者对象称为聚合对象,它的类称为聚合类;从属对象称为被聚合对象,它的类称为被聚合类。例如,一个公司有很多员工就是公司类Company和员工类Employee之间的一种聚合关系。被聚合对象和聚合对象有着各自的生命周期,即如果公司倒闭并不影响员工的存在。
比如:
1
public class Company {
2
private List<Employee> employees;
3
}
4
5
public class Employee {
6
private String name;
7
}
Copied!
UML可以表示为:

3.6 组合关系

组合关系使用实心菱形表示。
聚合是一种较弱形式的对象包含(一个对象包含另一个对象)关系。较强形式是组合(Composition). 在组合关系中包含对象负责被包含对象的创建以及生命周期,即当包含对象被销毁时被包含对象也会不复存在。例如一辆汽车拥有一个引擎是汽车类Car与引擎类Engine的组合关系。
比如:
1
public class Car {
2
private final Engine engine = new Engine();
3
}
4
5
class Engine {
6
private String type;
7
}
Copied!
UML可以表示为:
Last modified 11mo ago