UML类图

yizhihongxing

UML类图介绍

  • 概念

UML中的类图(Class Diagram)用于表示类、接口、实例等之间相互的静态关系。虽然名字叫作类图,但是图中并不仅仅只有类。

  • 类结构

UML类图

  • 继承

UML类图

该图展示了Parentclass和Childclass两个类之间的关系,其中的空心箭头表明了两者之间的层次关系。箭头由子类指向父类,换言之,这是表示继承(extends)的箭头。
ParentClass是Childclass的父类,反过来说,Childclass是Parentclass的子类。父类也称为基类或超类,子类也称为派生类。

  •  实现

UML类图

该图表示PrintClass类实现了Printable接口。为了强调接口与抽象类的相似性,本书的类图中会以斜体方式显示接口的名字。不过在其他书的类图中,接口名可能并非以斜体显示。空心箭头代表了接口与实现类的关系,箭头从实现类指向接口。换言之,这是表示实现(implements)的箭头。

  •  聚合

UML类图

该图展示了Color(颜色)、Fruit(水果)、Basket(果篮)这3个类之间的关系。Basket类中的fruits字段是可以存放Fruit类型数据的数组,在一个Basket类的实例中可以持有多个Fruit类的实例;Fruit类中的color字段是Color类型,一个Fruit类实例中只能持有一个Co1or类的实例。通俗地说就是在篮子中可以放人多个水果,每个水果都有其自身的颜色。我们将这种“持有”关系称为聚合(aggregation)。只要在一个类中持有另外一个类的实例无论是一个还是多个一它们之间就是聚合关系。就程序上而言,无论是使用数组、java.uti1Vector或是其他实现方式,只要在一个类中持有另外一个类的实例,它们之间就是聚合关系。在UML中,我们使用带有空心菱形的实线表示聚合关系,因此可以进行联想记忆,将聚合关系想象为在空心菱形的器皿中装有其他物品。

  •  关联

  可以在类名前面加上黑三角表示类之间的关联关系

UML类图

  •  可见性

UML类图

 

该图标识出了方法和字段的可见性。在UML中可以通过在方法名和字段名前面加上记号来表示可见性。
“+”表示pub1ic方法和字段,可以从类外部访问这些方法和字段。
“-”表示private方法和字段,无法从类外部访问这些方法和字段。
“#”表示protect方法和字段,能够访问这些方法和字段的只能是该类自身、该类的子类以及同一包中的类。
“~”表示只有同一包中的类才能访问的方法和字段。

 

原文链接:https://www.cnblogs.com/little-bean-sprout/p/17337805.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:UML类图 - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月22日

相关文章

  • Java实现单人信息管理程序

    下面我将为你详细讲解“Java实现单人信息管理程序”的完整攻略。 1. 需求分析 在开始编写程序之前,我们需要确定具体的需求。本文中,我们需要实现单人信息管理程序,需要实现以下功能:1. 添加一个新的信息2. 查看所有信息3. 修改已有的信息4. 删除已有的信息 2. 数据结构设计 在确定需求之后,我们需要确定数据结构。这里我们使用Java中的ArrayLi…

    Java 2023年5月18日
    00
  • 解决java main函数中的args数组传值问题

    解决Java main函数中的args数组传值问题通常有两种方式: 方式一:以命令行参数形式传值 我们可以在命令行中指定参数值,然后在Java程序中通过args数组获取传入的参数值。具体步骤如下: 编写Java程序,使用args数组获取命令行传入的参数值。示例代码如下: public class Main{ public static void main(S…

    Java 2023年5月26日
    00
  • Java实战房屋租赁网的实现流程

    以下是我对于Java实战房屋租赁网的实现流程的详细讲解: 实现流程 1. 需求分析 在开始实现之前,需要进行需求分析,确定网站的主要功能和用户需求,以便于更好地实现网站。需要考虑以下问题: 用户需要哪些功能?例如:房屋的浏览、搜索、下单、支付等功能。 网站需要哪些信息?例如:用户信息、房屋信息、订单信息等。 网站的业务流程是怎样的?例如:用户搜索房屋-&gt…

    Java 2023年6月16日
    00
  • Maven安装及MyEclipse中使用Maven

    下面是Maven安装及MyEclipse中使用Maven的完整攻略。 安装Maven 下载Maven 前往Maven官网下载最新的Maven版本,也可以通过镜像站点下载。 解压缩Maven 将下载的Maven压缩包解压到本地文件夹,例如解压到D盘根目录下的“apache-maven-3.8.3”。 配置环境变量 将Maven的bin目录添加到系统的PATH环…

    Java 2023年5月20日
    00
  • 一文详解Java闭锁和栅栏的实现

    一文详解Java闭锁和栅栏的实现 1. 什么是闭锁和栅栏 在并发编程中,有时需要等待某个操作的完成,或者协调多个线程的执行。Java提供了闭锁(Latch)和栅栏(Barrier)两个机制来实现这种协调。 闭锁是一种同步工具,可以使线程等待一个或多个线程的操作完成。闭锁一般会在某个线程等待另一个线程完成任务时使用。 栅栏是一种同步工具,它允许一组线程在某个点…

    Java 2023年5月26日
    00
  • Spring Boot实现热部署的实例方法

    下面是详细讲解“Spring Boot实现热部署的实例方法”的完整攻略,攻略分为如下部分: 介绍热部署的概念和优势 Spring Boot实现热部署的配置方法和步骤 附带两个示例说明 1. 热部署的概念和优势 热部署(Hot Deployment)是指在应用程序运行时,对已经部署的程序代码进行修改,无需停止应用程序,即可自动更新代码的部署方式。热部署能够极大…

    Java 2023年5月26日
    00
  • Java之Mybatis多层嵌套查询方式

    下面我会为大家详细讲解“Java之Mybatis多层嵌套查询方式”的完整攻略。 1. 什么是多层嵌套查询? 多层嵌套查询指的是在进行数据库查询时,需要查询多个关联表才能获取最终的结果。这种情况下,我们需要在 SQL 语句中使用多个子查询,把不同层级的查询进行组合,才能得到最终的结果。 2. Mybatis 多层嵌套查询的实现方式 Mybatis 多层嵌套查询…

    Java 2023年5月20日
    00
  • Servlet注解之@WebInitParam多个InitParam的使用

    Servlet注解之@WebInitParam多个InitParam的使用 在Java Web开发中,Servlet是一个非常重要的组件,而注解是Servlet中的一种方便的写法。@WebInitParam是Servlet的注解之一,用于指定初始化参数。在Servlet中,我们可以使用多个@WebInitParam注解,在一次Servlet初始化中指定多个初…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部