一、类图
(一)、类图的组成

1.类名
1)按命名规范定义
2.属性
1)通常指类成员变量
2)定义格式:[可见性] 属性名 : 数据类型[=默认值]
3)‘#’:protected,‘+’:public,‘-’:private,‘~’:受包保护的
3.操作
1)通常指类的成员方法
2)定义格式:[可见性] 方法名([参数1:数据类型,参数2:数据类型,...])[:返回值类型]
二、类之间的关系
(一)、关联关系
1.定义
被关联的对象以成员变量的形式体现
2.示例
1)单向关联

public class Person {
//......
protected Address address;
//......
}
2)双向关联

class Person {
//......
public Gift gift;
//......
}
class Gift {
//......
public Person person;
//......
}
3)自关联

class Node {
public Node subNode;
}
4)多重性关联
1或1..1:另一个类的一个对象与该类的一个对象有关系
0..*:另一个类的一个对象与该类的零个或多个对象有关系
m..n:另一个类的一个对象与该类的m个到n个对象有关系

class Element {
}
class Group {
private Element[] elements;
}
(二)、聚合关系
1.定义
表示整体与部分的关系。成员对象是整体对象的一部分,但成员对象又可以脱离整体而独立存在
2.示例

public class Human {
private House house;
private Car car;
private Deposit deposit;
public Human(House house, Car car, Deposit deposit) {
this.house = house;
this.car = car;
this.deposit = deposit;
}
}
class House {
}
class Car {
}
class Deposit {
}
(三)、组合关系
1.定义
整体与部分的关系。整体对象一旦消亡,成员对象也随之消亡
2.示例

public class Human {
public House house;
public Car car;
public Deposit deposit;
public Human() {
this.house = new House();
this.car = new Car();
this.deposit = new Deposit();
}
}
class House {
}
class Car {
}
class Deposit {
}
(四)、依赖关系
1.定义
一种使用关系。一个类在另一个类中作为方法的参数
2.示例

public class Human {
void move(Box box) {
}
}
class Box{
}
(五)、泛化关系
1.定义
继承关系
2.示例

public class Human {
}
class Teacher extends Human{
}
class Student extends Human{
}
(六)、接口实现关系
1.定义
类实现了接口中的所有操作
2.示例

public interface Vehicle {
}
class Car implements Vehicle {
}
class Ship implements Vehicle {
}
