【Java】Java绘制UML图

本文详细介绍了面向对象编程中的六种关系:继承、实现、关联、依赖、聚合和组合。继承允许子类继承父类的功能,实现是类与接口之间的关系,关联表示类对象间的静态联系,依赖则在运行时产生影响。聚合和组合是整体与部分的关系,前者允许部分独立存在,后者则强调强依赖性。
摘要由CSDN通过智能技术生成

1.继承关系(Inheritance)

继承指的是一个类(子类、子接口)继承另外的一个类(父类、父接口)的功能,通过关键字 extends 明确标识
在这里插入图片描述
UML图

继承用一条带空心三角箭头的实线表示,从子类(子接口)指向父类(父接口)
在这里插入图片描述

2.实现关系(Realization/Implementation)

实现指的是一个 class 类实现 interface 接口(可以是多个)的功能,通过关键字 implements 明确标识

public interface ProgrammingLanguage {
}
 
class Java implements ProgrammingLanguage {
}
 
class Python implements ProgrammingLanguage {
}

UML图

实现用一条带空心三角箭头的虚线表示
在这里插入图片描述

3.关联关系(Association)

表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。可以用 1 对 1、多对 1、多对多这种关联关系来表示。

public class School {
    List<Student> studentList;
}
 
class Student {
}

UML图

在关联的两端可以标注关联双方的角色和多重性标记。
在这里插入图片描述

4.依赖关系(Dependency)

和关联关系不同的是,依赖关系是在运行过程中起作用的。

A 类和 B 类是依赖关系主要有三种形式:

A 类是 B 类中某方法的局部变量;
A 类是 B 类方法当中的一个参数;
A 类向 B 类发送消息,从而影响 B 类发生变化;

public class Bank {
    public static volatile BigDecimal allAccountBalance = new BigDecimal("1000000000");
 
    public static void setAllAccountBalance(BigDecimal allAccountBalance) {
        Bank.allAccountBalance = allAccountBalance;
    }
}
 
class BankCard {
 
    void deposit(BigDecimal money){
        Bank.setAllAccountBalance(Bank.allAccountBalance.add(money));
    }
 
    void cashWithdrawal(BigDecimal money){
        Bank.setAllAccountBalance(Bank.allAccountBalance.subtract(money));
    }
}

UML图

依赖关系用由类 A 指向类 B 的带箭头虚线表示:
在这里插入图片描述

5.聚合关系(Aggregation)

聚合是关联关系的一种特例,它体现的是整体与部分的关系,即 has-a 的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。例如电脑和鼠标键盘的关系,电脑作为整体,而鼠标键盘作为电脑的非必要组成部分,两者生命周期互不干扰。

public class Computer {
}
 
class Mouse {
}
 
class Keyboard {
}

UML图

聚合关系以实线空心菱形表示
在这里插入图片描述

6.组合关系(Composition)

和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工之间属于聚合关系,因为公司没了员工还在。

public class Company {
}
 
class DepartmentA {}
class DepartmentB {}
class DepartmentC {}

UML图

组合关系用实心菱形表示
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值