IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 类图(Class diagram) -> 正文阅读

[Java知识库]类图(Class diagram)

一个带有属性和方法的类图实例:

在这里插入图片描述

  • CD:这是一个类图,class diagram;
  • 类名auction: 一个拍卖类
  • 属性列表:属性类型可以省略
  • 类型修饰符:
    • +: public
    • -: private
    • #: protected
    • ?: readonly
  • 方法列表:不需要列举所有方法
  • 评论: 检查正确性并增加竞标数量

静态方法与静态属性

在这里插入图片描述
静态方法或属性用下划线表示。

派生属性

在这里插入图片描述
派生属性:一个属性可以从其他属性中计算(派生)得出,用"/"表示。

类图的完整性

在这里插入图片描述

  • ?: 表示完整(所有属性或方法都被列出)
  • … : 不完整 (部分属性或方法被省略)
  • 第二个图表示方法全部被列出,但是属性不完整

代码生成

Auction类生成java代码

在这里插入图片描述

生成带有get/set方法的代码

在这里插入图片描述

接口、继承

实例

在这里插入图片描述

  • 抽象类:类名斜体;抽象方法:方法斜体
  • 接口:<interface> , 方法名与类名都斜体
  • 接口实现关系:虚线加空心三角箭头
  • 继承关系:实线加空心三角箭头

Stereotype

在这里插入图片描述

  • Stereotype专门描述了模型元素的含义
    • 允许特殊表示
    • 更高效或特定于目标的代码生成
  • Stereotyp 的构成: <<name>>

tag(特征)

在这里插入图片描述

  • tag描述模型元素的属性
  • 一个tag的构成:{tagname=value}
  • {Eigenschaft=true} 可以简写成 {Eigenschaft}
    比如: {ordered}, {persistent}。

关联关系

示例

在这里插入图片描述

关联角色、关联名与基数

在这里插入图片描述

  • 人参与竞拍, ?Person participates in Auction“
  • 从人的角度来看:导航到拍卖,因此
    • 关联角色“拍卖”链接
    • 一个人最多可以参加99场拍卖(0…99)
    • 一个拍卖品可以被任意的人数竞拍
  • 基数:
    • 精确的一个:1
    • 可选:0。。1
    • 任意:*
    • 非零:1…*(或+)
    • 固定间隔:3…9,17,21,42…99(但很少使用)

关联与链接

在这里插入图片描述

  • 在运行时通过链接创建关联

角色名

在这里插入图片描述

  • 角色名用于导航
  • Auction a; a.bidder; a.admin;

组合关系

在这里插入图片描述

  • 组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;
  • 他体现整体与部分间的关系,整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
  • 表示:带实心菱形的直线表示。
  • 例如:
    • 竞标政策、时序政策与拍卖类是组合关系,没有拍卖类就没有竞标政策与时序政策
    • 人的头与嘴巴,嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系。

可导关联

在这里插入图片描述

  • 可导关系:此关联关系可以被别的推到而出
  • 比如,如果一个人是竞拍者或竞拍者的成员,他可以观看拍卖。(observers)

关联关系的特性

在这里插入图片描述

  • {frozen}: 初始化后不允许再被改变
  • {addOnly}: 保留已输出的信息
  • {ordered}: 有一个顺序

关联关系中的限定符

在这里插入图片描述

  • auctionIdent: 具有目标类属性的限定符
  • String: 类型限定符
    在这里插入图片描述
  • login允许选择单个对象
  • 限定符可以是:
    • 表示顺序({ordered})的数字间隔(0-…)
    • 任何值(限定符类型,例如字符串)
    • 目标对象(拍卖人)的显式标识符(属性)

代码生成

多父类的代码生成

在这里插入图片描述

一对多的单向关联关系的代码生成

在这里插入图片描述

  • classB不受影响

多对多的单向关联关系的代码生成

在这里插入图片描述

  • classB不受影响
  • HashSet存储多个引用
  • “get”方法返回一个不变的集合

多对多的双向关联关系的代码生成

在这里插入图片描述

  • ClassB的构造方法类似于A
  • add”或“remove”等修改方法还使用辅助函数“addLocal”和“removeLocal”调整关联的相对链接。
  • “get”方法返回一个不变的集合

带限定符的关联关系的代码生成

在这里插入图片描述

组合关系的代码生成

在这里插入图片描述

  • classB不受影响
  • 仅在对象的初始化阶段允许修改或占用
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 23:36:51  更:2022-04-14 23:41:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:45:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码