UML类图

UML类图

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

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


类图的画法

类图中又类和接口。

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

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

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

1652179925563.png

格式大致是

1652180102798.png

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

对于修饰符,+ 代表 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();
    }
}

类图如图

1652182788106.png

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值