
Java是一门纯面向对象的编程语言,所以就有类的存在,因此将类进行抽象的表达十分重要。
类
存在一个Person类
public class Person {
private String name;
private int age;
private String address;
public void addAge(int age) {
this.age += age;
}
public String newName(String newName) {
this.name += newName;
}
protected void doWork() {
System.out.println("Do Work");
}
private void sayHello() {
System.out.println("Say Hello!");
}
}
根据上面的类,我们就可以将其抽象表达为

类图解释说明
类图共分为三层
- 第一层为类名
- 第二层为类的属性
- 【访问限定符】【属性名】:【属性类型】
- 第三层为类的行为
- 【访问限定符】【方法名(参数名 : 参数类型)】:返回值类型
其中,表示类的访问限定符为private(-)、protected(#)、public(+)。
类之间的关系表示方法

泛化(继承)
继承又称之为泛化,在UML中,采用空心箭头表示,箭头指向的类为父类
存在Studengt类,继承自Person
public class Student extends Person {
private String schoolName;
private String schoolAddress;
public String getSchoolName() {
return this,schoolName;
}
public void setSchoolName(String schoolName) {
this.schoolName = schoolName;
}
}

实现
接口的实现
接口的实现使用的是虚线状的空心箭头表示,类似于图中,Circle实现了Shape接口,有一点需要注意的是在Shape的前面必须加上<<interface>>。

抽象类的实现
关于抽象类的表示方法,抽象类的方法名以及其中的抽象方法采用斜体表示,且实现方式也是虚线状的空心箭头。

依赖
依赖主要表现为一个类中使用到了另一个类,而这个使用是非必须的,在下面的类中,类B在方法中使用到了类A,从而就形成了B依赖A的关系。

关联
关联为一种更强的依赖关系,一般为另一个类出现在了某一个类的属性中。

聚合
聚合的含义为一个对象由其他的对象构成,并且这些构成的对象是可以独立的,他们可以有自己的生命周期,并非与主对象共存亡,只能够从语义上进行区分。

例如公司和员工,他们是两个是相互独立的,并非公司倒闭了员工这个人就不在了,他还可以属于其他公司。
组合
组合为一种强聚合,要求部分与整体是不可独立的,整体消亡部分也要消亡,是一种contains-a的关系。跟聚合只能从语义上进行区分。
例如人和大脑,人挂掉了,那么大脑也挂掉了。
