文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

UML 类图真的很重要,十分钟带你掌握!

2024-11-29 20:25

关注

什么是UML?

UML,Unified Modeling Language 统一建模语言,它是可视化软件系统设计的标准方法,UML 是一种经典的建模语言,包含了系统论、工程思想,以及架构学的元素。

UML 包含多种图表,用于表示系统的不同方面,以下是主要的 UML 图表类型:

什么是 UML 类图?

UML Class Diagram(UML 类图),它是 UML 中使用最广泛的一种,提供了面向对象系统的静态视图,展示了它的类、属性、方法以及对象之间的关系。

在本文中,我们将探讨 UML 类图的构建块、如何表示它们、不同类型的类关系,并为每种表示形式提供真实世界的示例。

UML 类图的组成

UML 类图由以下构建基块组成:

1.Class

类是定义对象的属性和行为的蓝图或模板。

如下示例,有一个 BankAccount 类以及用 UML 类图表示方式:

public class BankAccount {

    private String accountNumber;
    protected double balance;
    
    public void deposit(double amount) {
        this.balance = amount;
    }

    public void withdraw(double amount) {
        balance += amount;
    }

    private void updateBalance(double amount) {
        balance += amount;
    }

    String getAccountInfo() {
        return accountNumber;
    }
}

类表示为矩形,分为三个区间:

可见性标记:可见性标记指示类中属性和方法的可访问权限,可见性通常有以下 4种:

2.Attributes

UML 类图中的属性表示类的属性或数据字段。

属性的定义通常为下面的形式:

- username : String

如下示例,有一个 Person类,以及用 UML 类图表示方式:

public class Person {
    private String name;
    protected int age;
    public String email;
    String phoneNumber = "187xxxx1234";
}

2.Methods

UML 类图中的方法(或操作)表示类可以执行的功能或行为。

属性的定义通常为下面的形式:

+ sum(int a, int b): int

如下示例,展示一个 Person类中 4种访问权限的方法:

3.Interfaces

接口被描述为一个类矩形,接口名称上方带有关键字 «interface»,接口中的方法大部分上是抽象的,但是也有一些 default 方法。

如下示例,定义了一个 Drawable 接口,以及用 UML 类图表示的方式:

public interface Drawable {

    public void draw();
    private void erase(){ }
}

4.Abstract Class

抽象类是无法实例化的类,在 UML 中的抽象类用斜体表示类名,在类名上方用关键字 《abstract》表示。类中的抽象方法通常也以斜体显示。

如下示例,定义了一个 Shape 抽象类,以及用 UML 类图表示的方式:

public abstract class Shape {

    public double area;
    public abstract double getArea();
}

5.Enumeration

枚举是一种数据类型,用于定义一组命名值(例如,颜色、星期、月份等)。在 UML 类图中,在枚举名称上方用关键字 «enumeration» 表示,枚举的值列在类框中。

如下示例,定义了一个 Color 枚举,以及用 UML 类图表示的方式:

public enum Color {
    RED, GREEN, BLUE
}

UML 类图中的关系

在 UML 类图中,类之间的关系主要有以下 6种类型:

这六种关系的箭头如下所示:

1.Association

Association(关联),表示两个类之间的 uses-a 关系,其中一个类使用另一个类或与另一个类交互。

如下示例:学生班级与课程班级相关联,因为学生可以注册多个课程。

2.Aggregation

Aggregation(聚合),表示 has-a关系, 一个类(整体)包含另一个类(部分),但包含的类可以独立存在。

如下示例:Car 类具有 Engine 类,但 Engine 类可以在没有 Car 类的情况下存在。

3.Composition

Composition(组成),代表了一种强烈的 has-a  关系,在这种关系中,没有整体,部分就无法存在。如果整体被破坏,部分也被破坏。

如下示例:House 类由 Room 类组成,但 Room 类不能没有 House 类而存在。

4.Inheritance

Inheritance(继承或泛化),表示一种 is-a 关系,其中一个类(子类)继承另一个类(超类)的属性和方法。

如下示例:Dog 类和 Cat 类继承自 Animal 类,因为狗和猫都是动物。

5.Implementation

Implementation(实现),表示类和接口之间的关系,其中类实现接口中声明的方法。

示例:Rectangle 类和 Circle 类实现了 Shape 接口,该接口声明了 getArea() 方法。

6.Dependency

Dependency(依赖),代表一种 uses 关系,其中一个类别的变化可能会影响另一个类别。

如下示例:Customer 类使用 Order 类下订单。

最后,我们再对上面几种关系给出一个全面的示例:

总结

UML 类图是软件工作中很重要的一个知识点,作为程序员,我们一定要掌握,最后对 UML 类图做个总结:

UML 类图由以下构建基块组成:

类之间的关系主要有以下 6种类型:

来源:猿java内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯