类图
类图可以展示类的结构以及类与类之间关系
一、类结构,包括类名、属性、方法。+、-、#表示类的可见范围,分表为public、private、protected。
1、属性的表达方式为 【可见性 属性名 : 字段类型】
2、方法的表达方式为 【可见性 方法名(参数列表):返回类型】
二、类与类之间的关系
类与类之间的关系可以分为多种
1、关联关系
关联关系又细分为单向,双向和自关联
a、单向
代码示例
public class Customer{
private Address address; //定义为成员变量
……
}
public class Address{
……
}
b、双向
代码示例
public class Customer {
private Product[] products;
……
}
public class Product {
private Customer customer;
……
}
c、自关联,类似于数据类型中的树形结构
代码示例
public class Node {
private Node subNode;
……
}
2、聚合关系,表示整体和部分的关系,但是部分可以脱离整体而存在
代码示例,成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中
public class Car {
private Engine engine;
//构造注入
public Car(Engine engine) {
this.engine = engine;
}
//设值注入
public void setEngine(Engine engine) {
this.engine = engine;
}
……
}
public class Engine {
……
}
3、组合关系,也表示整体和部分的关系,但是部分不可以脱离整体而存在,当整体消亡时,部分也随之消亡
代码示例,通常在整体类的构造方法中直接实例化成员类
public class Head {
private Mouth mouth;
public Head() {
mouth = new Mouth(); //实例化成员类
}
……
}
public class Mouth {
……
}
4、依赖关系,大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数
代码示例
public class Driver {
public void drive(Car car) {
car.move();
}
……
}
public class Car {
public void move() {
......
}
……
}
5、继承关系,也就是extends
代码示例
//父类
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() {
……
}
}
6、实现关系,也就是implements
代码示例
public interface Vehicle {
public void move();
}
public class Ship implements Vehicle {
public void move() {
……
}
}
public class Car implements Vehicle {
public void move() {
……
}
}
图片来自网络
文章参考