UML类图

UML类图

UML图分为很多种类,而对于我们来说,类图时其中最为重要的一种。在实际应用中,类图在我们进行编程时能够帮助我们快速的理清类之间的关系,进而让我们更好的进行编程。

那么什么是类图呢? 类图主要用于反映类的属性以及类之间的关系,是一种静态模型。


类图的画法

类图中又类和接口。

1)类从上到下分为三部分,分别是类名、属性和方法。其中,类名必须有,当类中存在属性和方法时,就需要添加属性和方法。简单举个例子

public class Person {
    private int id;
    
    public void parent() {
        System.out.println("parent");
    }
    
    public void children() {
        System.out.println("children");
    }
}

这段代码的类图可以这么画

UML类图_第1张图片

格式大致是

UML类图_第2张图片

要注意的是,方法和属性的返回值类型都需要写在方法或者属性的后面,用 : 隔开。

对于修饰符,+ 代表 public , - 代表 private,# 代表 protected。

2)接口只包含方法而不含有属性,在UML中,接口用一个小圆圈来表示,如下

1652178940746.png

类图中的几种关系

类图中,类与类之间的关系通常用各种箭头和连线来表示

1)泛化关系

泛化关系其实就相当于继承关系,用空心箭头的实线表示,如图

1652180667246.png

2)实现关系

顾名思义,实现关系就是类对接口的实现,用空心箭头的虚线表示,如图

1652180743666.png

3)依赖关系

依赖关系是一种使用关系,用实心箭头的虚线表示,如图

1652181332315.png

产生依赖的几种情况

  1. 一个类是另一个类中的局部变量
  2. 一个类时另一个类方法中的参数
  3. 一个类向另一个类发送消息导致其发生改变
  4. 静态方法调用

4)关联关系

关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系,用带普通箭头的实心线表示,如图

1652180868762.png

示例

代码

Audi.java

package com.why.demo02.car;

public class Audi implements Car {
    @Override
    public void product() {
        System.out.println("生产Audi零件");
    }

    @Override
    public void assemble() {
        System.out.println("组装Audi");
    }
}

BMW.java

package com.why.demo02.car;

public class BMW implements Car {
    @Override
    public void product() {
        System.out.println("生产BMW零件");
    }

    @Override
    public void assemble() {
        System.out.println("组装BMW");
    }
}

Car.java

package com.why.demo02.car;

public interface Car {
    void product();
    void assemble();
}

AbstractFactory.java

package com.why.demo02.factory;

import com.why.demo02.car.Car;

public interface AbstractFactory {
    Car car();
}

AudiFactory.java

package com.why.demo02.factory;

import com.why.demo02.car.Audi;
import com.why.demo02.car.Car;

public class AudiFactory implements AbstractFactory {

    @Override
    public Car car() {
        return new Audi();
    }
}

BMWFactory.java

package com.why.demo02.factory;

import com.why.demo02.car.BMW;
import com.why.demo02.car.Car;

public class BMWFactory implements AbstractFactory {
    @Override
    public Car car() {
        return new BMW();
    }
}

类图如图

UML类图_第3张图片

你可能感兴趣的:(uml,java,开发语言)