这里写图片描述
(图一)

1. 继承(extends)

  • 接口与接口之间的继承关系;
  • 类与类之间的继承关系;

    箭头指向方向:子类指向父类;


2. 实现(implement)

  • 类对接口的实现关系;

    箭头指向方向:实现类指向接口;


3. 关联关系(Association)

  • 双向关联:可以有两个箭头或者没有箭头(不推荐);
  • 单向关联:有一个箭头,且箭头方向指向被关联的对象;

    关联关系是使实例变量实现的;
    每一个关联的端点,还可以有一个基数,表示这一端的类可以有几个实例;

    基数含义
    0..1零个或者一个实例
    0..*或者*对实例的数目没有限制(可以是0)
    1只有一个实例
    1..*至少有一个实例

    注:聚合关系和合成关系都属于关联关系;

4. 聚合关系(Aggregation)

  • 聚合关系属于强关联关系;

  • 关联关系和聚合关系的不同点:

    • 关联关系所涉及的两个类处于同一个层次上;
    • 聚合关系所涉及的两个类处于不平等的层次上(一个代表整体,一个代表部分);

5. 合成关系(Composition)

  • 合成关系属于关联关系,比聚合关系更强;

6. 依赖关系(Dependency)

  • 依赖是单向的,通常以方法参数的形式、局部变量的形式,及对静态方法调用的形式出现;

7. 类图

这里写图片描述

7.1 常见的类图分为以下几个层级:

  • 类名

    • 类名层不可省略,其他几层可以不存在;
    • 类名是正体字,类是具体的;
    • 类名是斜体字,类是抽象的,或者是接口;
  • 属性

    • +代表public;
    • #代表protected;
    • -代表private ;
  • 方法

    • +代表public;
    • #代表protected;
    • -代表private ;
    • 如果方法下面有一道下划线,则表明该方法是静态方法;
    • 方法后面带的是返回值类型;
  • 内部类

7.2 参照上面的类图写出对应的类

public class Person {

    private String name;
    protected int age;
    public String sex; 

    // 构造方法
    public Person() {
    } 

    // 带参数的方法
    private void work(int num) {
    } 

    // 不带参数的方法
    protected void eat() {
    } 

    // 带返回值的方法
    public String play() {
        return null;
    }

    // 内部类
    class Builder {
    }
}

8. 参考:

《Java与模式》

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐