前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件设计——UML类图详解「建议收藏」

软件设计——UML类图详解「建议收藏」

作者头像
全栈程序员站长
发布于 2022-02-27 05:10:14
发布于 2022-02-27 05:10:14
3.2K02
代码可运行
举报
运行总次数:2
代码可运行

大家好,又见面了,我是全栈君。

文章目录

一、UML类图思维 导图

思维导图地址:http://naotu.baidu.com/file/df1cb03489378d2a541d3d8d181399da?token=2eb1feb8006fa607 密码:33bZ

二 、详细分析和介绍

下面就从上面的思维导图开始,详细的介绍UML类图! 在讲解之前请看关系线条图(一定要牢记):

1、 什么是UML,概念是什么?

​ 统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。【维基百科

UML分为UML模型和UML类图。

区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。

2、为什么要用UML?类图的作用

​ UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 ​ 类图的作用: ​ (1):在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解; ​ (2):类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。

3、 类的UML的介绍和画法?

​ 类的UML使用包含类名、属性、方法名以及参数。使用带分割线的长方形表示。 代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public  class    Person { 
   

    public String  name;

    protected int  age;

    private String accommodation = "Earth";//住所

    public String getName() { 
   
        return name;
    }

    public void setName(String name) { 
   
        this.name = name;
    }

    public int getAge() { 
   
        return age;
    }

    public void setAge(int age) { 
   
        this.age = age;
    }

    public String getAccommodation() { 
   
        return accommodation;
    }

    public void setAccommodation(String accommodation) { 
   
        this.accommodation = accommodation;
    }
}

类图:

如上这个类图,Person类有三部分组成,分别是类名、属性和操作方法,下面一一进行介绍:

  • 类名:

就是Java类的名字, 如果是类是抽象类则类名显示为斜体! 其他地方不做改动。

Person

  • 属性名:

就是java中的成员变量,一个类可以零到多个属性,java中属性(成员变量)的修饰符,类型和默认值都可以在UML中体现出来。通常用的表达式如下:

可见性 名称:类型[=默认值]

在Java中可见性分为三类,分别是public、private和protected,在类图分别用+、-和#表示;名称为属性的名称;类型在java中有八种基本的数据类型(byte、short、 int、long、 float、 double、 char、 boolean)及String和一些自定义的类型。默认值如变量 accommodation 有初始值为 Earth!

  • 操作方法 在java中类的操作方法也是有个通用的表达式如下:

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

可见性如上名称表达式的介绍,名称就是方法名,参数列表是可选的项,多参数的话参数直接用英文逗号隔开;返回值也是个可选项,返回值类型可以说基本的数据类型、用户自定义类型和void。如果是构造方法,则无返回类型!

4、类之间关系UML的介绍和画法?

(1)泛化(Generalization)关系 :空心箭头实线表示,箭头指向个人

泛化关系表示类与类之间的继承关系,类和类,接口和接口都可以是继承关系,父类称为基类或者超类,子类称为派生类。子类继承父类实现父类的所有功能,并拥有父类没有的功能!

下面写了两个子类继承Person类!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ChineseMan extends Person{ 
   

    private String skinColor = "yellow";

    public  void sayHello(){ 
   
        System.out.println("欢迎来中国 !");
    }
}
public class USAMan extends Person{ 
   

    private String language = "English";

    public  void sayHello(){ 
   
        System.out.println("Welcome to USA !");
    }
}

(2)实现(Realization)关系 :空心箭头虚线表示,箭头指向约定的元素

实现关系就是java中的一个类和接口之间的关系,接口中一般是没有成员变量。所有操作都是抽象的,只有声明没有具体的实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface Car { 
   
    //车的牌子
    public void brand();
}
public class LandRover implements Car{ 
   

    public void brand() { 
   
        System.out.println("This is a LandRover");
    }
}

(3)依赖(Dependence)关系:虚线箭头表示,箭头指向被依赖的对象

依赖关系是类与类之间最弱的关系,A元素变化会影响B元素,反之不成立。说简单点就是一个类使用了另一个类,这种关系具有临时性特征,一个类的改变由于另一类而受影响。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ChineseMan extends Person{ 
   

    private String skinColor = "yellow";

    public  void sayHello(){ 
   
        System.out.println("欢迎来中国 !");
    }

    public void useCar(LandRover car){ 
   
        System.out.println(car.brand(););
    }
}

(4)关联关系:实线箭头表示,箭头指向(也可以双向)被依赖元素

关联关系表示一个类和另一类有联系,它使一个类知道另一个类的属性和方法,被关联的元素间通常可以被独立的考虑。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** * 延安人-红色革命圣地欢迎你! */
public class YanAnMan { 
   
    public ChineseMan cm;
    //public List<ChineseMan> list;
}

1…1表示另一个类的一个对象只与该类的一个对象有关系 0…* 表示另一个类的一个对象与该类的零个或多个对象有关系 1…* 表示另一个类的一个对象与该类的一个或多个对象有关系 0…1表示另一个类的一个对象没有或只与该类的一个对象有关系

(5)聚合(Aggregation)关系:带空心菱形头的实线表示,菱形头指向整体

聚合关系是整体和部分的关系,是一种强的关系,但是部分可以脱离整体而存在。是关联关系的一种。

比如有一辆LandRover,有轮胎和发动机!

(6):组合(Composition)关系:带实心菱形头的实线表示,菱形头指向整体

组合关系是聚合关系的一种变种,便是了更强的组合关系,它要求整体的对象代表部分对象的生命周期。

比如YanMan 的一个大脑!

三 、使用的工具和详细的资料

1、使用的画图工具

思维导图:百度脑图 画UML:Microsoft Visio、JUDE、processon等

2、完整的UML类图:

在次附上 关系线条 图:

四、参考资料

Java利器之UML类图详解 UML类图符号 各种关系说明以及举例 深入浅出UML类图

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/121196.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
UML类图快速上手
那个加号,“+”代表public,“-”代表private,“#”代表protect。
看、未来
2020/08/26
1K0
UML类图快速上手
UML 类图简介
UML分为模型和图形两大类。区分UML模型和UML图是非常重要的,UML图(包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图)是模型中信息的图表表达形式,但是UML模型独立于UML图存在。
为为为什么
2022/08/06
8290
UML 类图简介
UML | 类图
类图(Class diagram)是最常用的UML图, 用于描述系统的结构化设计, 主要包括类、接口以及它们之间的结构和关系, 下面就一起看下这两部分.
一个架构师
2022/06/27
5420
UML | 类图
UML类图(上):类、继承和实现
对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做。伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现。如果要自己设计,无论是给自己看,还是给别人看,势必要输出一些文档,清晰地整理出思路。
lyb-geek
2018/07/26
1.3K0
UML类图(上):类、继承和实现
软件设计原则讲解,昭昭在目!
大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚!死鬼~看完记得给我来个三连哦!
蔡不菜丶
2021/01/08
4380
设计模式学习(四)-UML中的类图及类图之间的关系
统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言。特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
用户4464623
2020/09/10
1.5K0
设计模式学习(四)-UML中的类图及类图之间的关系
通过简单例子 | 快速理清 UML类图中六大关系
最近学校在上统一建模语言 UML ,也是毕业设计中需要用到。我感觉学会 UML 图对编程的作用是很大的,将需要做的东西抽象出来,作图,然后再进行编码,我觉得思路会比较清晰。所以打算把这个方面也好好掌握掌握。
宁在春
2022/10/31
2.1K0
通过简单例子 | 快速理清 UML类图中六大关系
软件工程 类图习题
(A)Public      (B)Protected      (C)Private    (D)Package
Meng小羽
2019/12/24
6.3K0
UML类图(下):关联、聚合、组合、依赖
关联(Assocition)关系是类与类之间最常见的一种关系,它是一种结构化的关系,表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等。在UML类图中,用实线连接有关联关系的对象所对应的类,在Java中通常将一个类的对象作为另一个类的成员变量。关联关系分单向关联、双向关联、自关联,逐一看一下。
lyb-geek
2018/07/26
2K0
UML类图(下):关联、聚合、组合、依赖
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
百度百科: UML-Unified Modeling Language统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。 UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。
GeekLiHua
2025/01/21
3060
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
设计模式前篇之:UML类图必会知识点
UML类图是学习设计模式之前必会必学的知识点,学习设计模式会涉及到大量的类结构,写这篇文章的同时也是在记录自己在学习设计模式的过程中遇到的一些问题,大家来一起参考一下吧。
Twcat_tree
2022/11/30
7510
设计模式前篇之:UML类图必会知识点
五分钟读懂UML类图
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:
动力节点Java培训
2019/01/28
2.4K0
一篇文章讲清面向对象的UML类图
从定义上看可能有点抽象,说白了就是一种由图表组成的标准化建模语言,一般我们理解的语言都是由文字组成,而这种统一建模语言是由图表组成的。我们知道开发一个软件系统,不光只有程序员参与,另外还有分析师、设计师、测试人员等等,为了让不同人能够理解交流这个软件系统,就诞生出了这么一套语言。我们说过这个语言是有图表组成的,这里的图表有好几种类型,最常用的有:用例图、类图、序列图、状态图、活动图、组件图和部署图等。由于本文主要讲解类图,其他就不深入了解了,感兴趣的同学可以上网搜索这方面的内容。
lyb-geek
2019/06/20
1.6K0
一篇文章讲清面向对象的UML类图
UML类图
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
叫我阿杰好了
2022/11/07
7710
UML类图
一篇文章带你了解设计模式原理——UML图和软件设计原则
我们在学习过程中可能并不会关心设计模式,但一旦牵扯到项目和面试,设计模式就成了我们的短板
秋落雨微凉
2022/12/29
5180
一篇文章带你了解设计模式原理——UML图和软件设计原则
UML中类图的一些基本知识
类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作、属性、关系的对象集合的总称。
xcywt
2022/05/09
2.5K0
UML中类图的一些基本知识
UML类图介绍
比如下图表示一个Employee类,它包含name,age和address这3个属性,以及work()方法:
全栈程序员站长
2022/09/14
4850
UML类图介绍
UML类图符号:各种关系说明以及举例
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。
BUG弄潮儿
2020/09/04
7.4K0
UML类图符号:各种关系说明以及举例
设计模式(二)——UML类图介绍
在正式介绍设计模式之前,我们有必要学习一下UML类图,因为我们需要一种直观的表示方法来描述设计模式,这种方法即是UML类图。
用户6557940
2022/07/24
1K0
设计模式(二)——UML类图介绍
如果你看不懂别人画的 UML 类图,看这一篇文章就够了
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
跟着飞哥学编程
2022/12/02
4.2K0
相关推荐
UML类图快速上手
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验