UML--类图的表示

1. 类的表示

1.1 访问属性

+: public
-: private
#: protected

1.2 接口与抽象类

斜体 表示抽象类和抽象方法
<<Interface>> 类表示接口

1.3 类图示意

Mclass
- val: int
+ getVal(): int

2. 类关系

2.1 实现关系

空心三角形和虚线组成

B实现A,则三角形尖尖朝向A,在三角形底边引一条虚线再连接B。

2.2 泛化关系

is a关系, 继承关系。

B继承A,则三角形尖尖朝向A,在三角形底边引一条实现线再连接B。

2.3 依赖关系

use a关系

弱关联关系: 对象A用到对象B, 但是和B的关系不是太明显的时候,就是依赖关系。

用一个虚线箭头表示,A使用了B, 则使用虚线箭头指向B。

代码1:

java 复制代码
public class B {
    
    public String field1;
    
    public void method1() {
        System.println("在类B的方法1中");
    }
    
    public static void metho2() {
        System.out.println("在类B的静态方法2中");
    }
}

代码2:

java 复制代码
public class A {
    public void method1() {
        B b = new B();
        b.method1();
    }
    
    public void method2() {
        B.method2();
    }
    
    public void method3(B b) {
        String s = b.field1;
    }
    
    public B method4() {
        return new B();
    }
    
}

2.4 聚合关系

聚合就是整体与部分的关系,即has a关系。

用一个空心菱形和实线箭头表示。

A由于B、C聚合而成,则由A引申一个空心菱形,在引入线连接到B、C。

实例1:汽车类和汽车驾驶员

java 复制代码
class CarClass {
    String carName;
    int carId;
    CarClass (String name, int id )
    {
        this.carName = name;
        this.carId = id;
    }
}

class Driver extents CarClass {
    String driverName;
    Driver(String name, String cname, int cid) {
        super(cname, cid);
        this.driverName = name;
    }
}

class TransportCompany {
    public static void main(String args[])
    {
        Driver obj = new Driver("Andy", "Ford", 9988);
        System.out.println(obj.driverName + "is a driver of car Id: " + obj.carId);
    }
}

2.5 组合关系

组合比聚合更强,部分与整体的生命周期一致。

用一个实心菱形和实线箭头表示。

A由于B、C组合而成,则由A引申一个实心菱形,在引入线连接到B、C。

2.6 关联关系

关联关系比组合关系要弱,通过他们对象本身。一对一,一对多,多对多。

用实线箭头来表示,A关联B则用A指向B。

2.7 聚合、组合、关联区别

关联是两个类之间的关系,可以是一对一,一对多,多对多。

聚合则是一种单向的关系,比如钱包和钱,一个实体可以脱离另外一个实体的存在而存在。钱没了不表示钱包就没了。

组合关系则表示两个实体强关联,像人和心脏一样。

相关推荐
weixin_456904276 天前
数据库设计与UML图
数据库·uml
希赛网9 天前
软考软件设计师常考知识点:(一)计算机组成与体系结构
软考·uml·编程语言·计算机基础·软件设计师
rolt10 天前
[pdf、epub]320道《软件方法》强化自测题业务建模需求分析共279页(202509更新)
产品经理·ddd·架构师·uml·领域驱动设计
攻心的子乐13 天前
软考 UML类图 泛化继承 实现 聚合 组合(最强) 依赖(最弱
uml
攻心的子乐14 天前
软考 UML 用例图 extend扩展关系 include包含关系 泛化继承inherit关系
uml
「QT(C++)开发工程师」25 天前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
小鱼儿LY25 天前
软考系统架构设计师之UML统一建模语言
系统架构·软考·uml·架构设计师
workflower1 个月前
GitHub宕机自救指南
测试用例·需求分析·uml·敏捷流程·结对编程
青草地溪水旁1 个月前
Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
uml·状态机
Liquad Li1 个月前
UML(统一建模语言)详解
架构·uml