UML图 - 类图(Class Diagram)

类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。

类图的结构

在这里插入图片描述

类一般由三部分组成:

  • 类名:每个类都必须有一个名字,类名是一个字符串。

  • 类的属性:类的成员变量。一个类属性个数大于等于零。 表示方法为:

    可见性 名称:类型 [ = 缺省值 ]

    a. “可见性”包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。表示属性对于类外的元素是否可见。
    b. “名称”用一个字符串表示属性名。
    c.“类型”可以是基本数据类型,也可以是用户自定义类型,表示属性的数据类型。 d.
    “缺省值”为可选项,即属性的初始值。

  • 类的操作:类的任意一个实例对象都可使用的类的成员方法。表示方法:

    可见性 名称(参数列表) [ : 返回类型]

    a.“可见性”的定义同属性。
    b.“名称”用字符串表示。
    c.“参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。
    d.“返回类型”是一个可选项,表示方法的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回类型。

类的关系

关系类型含义符号例子
依赖(Dependency)表示一个类的方法通过另一个类的对象来完成。在这里插入图片描述电脑和USB接口的关系。电脑类的methods(如connectUSB)可能会用到USB接口,如果USB接口发生了改变,那么电脑类也可能需要相应地修改。
关联(Association)表示一个类知道另一个类的属性和方法,可以是双向的,也可以是单向的。在这里插入图片描述学生和课程的关系。每个学生可以关联多门课程,而每门课程也可以关联多个学生。
继承(泛化, Generalization)表示子类是父类的一种,子类继承父类的所有属性和方法,同时可以有自己特有的。在这里插入图片描述鸟类和乌鸦的关系
实现(Realization)通常用于表示类和接口之间的关系,类实现接口的所有方法。在这里插入图片描述接口和类的关系
聚合(Aggregation)表示一个类是另一个类的集合或部分,且部分和整体的生命周期可以不一致。在这里插入图片描述公司和员工的关系。公司由多个员工组成,但是员工可以离开公司,也可以更换公司。
组合(Composition)也表示一个类是另一个类的部分,但是它表示更强的所有权,整体和部分的生命周期合一。在这里插入图片描述人和心的关系,人的生存依赖于心脏,心脏不能离开人而存在。

注意

封装、继承和多态是面向对象编程的三个基本特征,它们是面向对象编程的基本思想,用来描述类或对象之间的交互和组织的方式。封装是个过程,,多态则是一种表现,他们不属于类的关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值