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

一:UML类图思维导图 思维导图地址:http://naotu.baidu.com/file/df1cb03489378d2a541d3d8d181399da?token=2eb1feb8006fa607 密码:33bZ二:详细分析和介绍下面就从上面的思维导图开始,详细的介绍UML类图! 在讲解之前请看关系线条图(一定要牢记): 1、 什么是UML,概念是什么? 统一建模语言

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

做一个积极的人

编码、改bug、提升自己

我有一个乐园,面向编程,春暖花开!

一、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使用包含类名、属性、方法名以及参数。使用带分割线的长方形表示。
代码演示:

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类!

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中的一个类和接口之间的关系,接口中一般是没有成员变量。所有操作都是抽象的,只有声明没有具体的实现。

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元素,反之不成立。说简单点就是一个类使用了另一个类,这种关系具有临时性特征,一个类的改变由于另一类而受影响。

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)关联关系:实线箭头表示,箭头指向(也可以双向)被依赖元素

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

/** * 延安人-红色革命圣地欢迎你! */
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://aflyun.blog.csdn.net/

愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人
软件设计——UML类图详解「建议收藏」

© 每天都在变得更好的阿飞云

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机考试身份证和准考证号

    计算机考试身份证和准考证号大家好啊,距离22考研初试仅剩26天,现在这个时候,大家除了对知识点进行查缺补漏之外,也得关注一些关于考前的准备工作,还有考场的注意事项哦!因为地区的不同,考点的不同,监考老师的不同,考试的要求和规定也会有差异哦,所以大家在拿到准考证之后,一定要仔细查看考试考点的要求~#考研倒计时#打开腾讯新闻,查看更多图片>1、可不可以戴手表、手环?如果要戴手表,那必须是没有记忆及计算功能的,也就是机械表,手环算电子产品大概率是不可以带的,在进考场之前可以询问一下监考老师,确认一下是否可以带

    2022年5月26日
    68
  • microsoft setup bootstrapper 已停止工作

    microsoft setup bootstrapper 已停止工作安装office2013提示:microsoftsetupbootstrapper已停止工作

    2022年7月20日
    40
  • python正则表达式匹配 模式匹配[通俗易懂]

    python正则表达式匹配 模式匹配[通俗易懂]Python正则式的基本用法初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了。但是对于初学者来说,要用好这个功能还是有点难度

    2022年7月1日
    25
  • 卸载vs2012的步骤_plsql卸载详细步骤

    卸载vs2012的步骤_plsql卸载详细步骤要卸载VS系列时才发现卸载VS还是很麻烦的事情,经过研究网上的卸载工具都没什么用,还是要自己手动卸载才彻底些。手动卸载步骤:VisualStudioExpressEditions进入控制面板,运行添加或删除程序 卸载”MSDNLibraryforVisualStudio2005Beta” 卸载”MicrosoftSQLServer2005Expr

    2022年9月23日
    0
  • QQ农场怎么开挂_qq农场矿山辅助

    QQ农场怎么开挂_qq农场矿山辅助很久没更新博客了,今天就拿开发QQ开心农场外挂的一些问题来写篇短日志充个数。 关于登陆       在web上,QQ登陆的时候是将密码加密后再提交了,打开http://xiaoyou.qq.com,找到了密码加密过程在http://imgcache.qq.com/campus/js/Mlogin.js 文件中,通过解读代码可以了解到,QQ一共进行了4次的MD5运算,具体过程如下:比如

    2022年9月12日
    0
  • navicat永久激活码最新[最新免费获取]

    (navicat永久激活码最新)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSW…

    2022年3月26日
    292

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号