UML part3 类图、对象图

四种关系

1. 依赖关系

①定义:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素

②举例:动物有生命和水进行繁殖,动物和水,动物和氧气都是依赖关系;人需要用船过河,人和船就是依赖关系

...

中间省略了降低依赖的方法,依赖倒置,依赖注入和控制反转

详情可参考JavaEE

...

2. 关联关系

①定义:是一种结构关系,用于指明一个事物的对象和另一个事物的对象间的联系

②关联可以是单向的(带箭头),也可以是双向的(不带箭头)

③依赖与关联的区别

a. 依赖是一种弱关联

b. 依赖是一种偶然的关系,而不是必然的关系

c. 关联是类的对象之间的一种关系

d. 通俗的理解,就是一个是使用,一个是必须需要。依赖就是可以使用,例如人可以使用船过河,但人也可以用其他工具过河;关联就是必须需要,例如老师教学生,水壶装水

④特殊的关联:聚合和组合

a. 聚合关系

表示类之间整体与部分的关系,较大的事物由较小的事物组成

例如:教室和课桌,教室和椅子,键盘和计算机,鼠标和计算机

每个部分不一定属于一个整体

b. 组合关系

组合是更强形式的聚合关系

整体与部分的生命周期完全一致,每个部分只能属于一个整体

例如:人类和大脑,人类和心脏

聚合关系和组合关系示例

3. 泛化关系

①泛化即继承

②定义:表示一般事物(父类)和该事物的特殊种类(子类)之间的关系

③例如:学生和本科生,学生和研究生,动物和狗子

4. 实现关系

①定义:说明规格的接口和实现其功能的类的关系

②和java中的接口与类的关系相同

③不继承结构,只继承行为

④常见的两种表现形式

正向工程和反向工程

1. 正向工程:从UML图形生成java代码

2. 反向工程:从java代码生成UML图形

3. 正向工程和反向工程都是一种辅助手段

类图

1. 类的组成

①名称:符合命名范围

②属性:就是状态信息,例如姓名,年龄,有无翅膀等

③行为:就是能做什么,例如吃,跑,迁徙

④属性的可访问性:

公有(pubic):+

私有(private):-

保护(protected):#

实现(implementation):~

2.类图的版型(在顺序图中会用得到)

①版型(类型或构造型):用于标明或扩展现有UML元模型的含义,几乎每个UML元模型都有很多版型

②MVC框架的版型表示:

类图的版型画法以及对应的举例(*三个版型必须记住)

③边界类

a. 位于系统与外界的交界处,例如窗体、对话框、报表、与外部设备或系统交互的;类等等

b. 边界类可以通过用例确定,因为活动者必须通过边界类参与用例

边界类画法(主要画最左边的)

④实体类:保存永久信息,最终可能映射数据库中的表和字段

实体类画法(主要画最左边的)

⑤控制类:协调其他类工作和控制总体逻辑流程,一般每个用例有一个控制类。控制类会向其他类发送消息

控制类画法(主要画最左边的)

3. 类图的抽象层级

①概念类

a. 描述相关领域的概念

b. 仅包括类名,不含细节

概念类示例(主要画最左边的)

②分析类

a. 包含类的部分属性和行为

b. 不针对具体编程语言

分析类示例

③设计类

a. 针对具体编程语言

b. 考虑实现细节

设计类示例

4. 类图的使用

①类图是UML中最重要的图形,能用于各种场合

②对概念模型,分析领域模型(概念,属性,关联)

③保持类图的简单,不要试图描述所有细节

【考试画图类型题】

要点:

1.认真读题,过滤出题目中的类

2.找出题中每个类具有的属性和行为

3.分析每个类之间的关系

例题1.教室内排放着若干个课桌和椅子,每个课桌旁最多摆放4把椅子,每把椅子上坐着一名学生,根据上述描述,画出相应的UML图。

分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上,以教室和课桌举例,“教室内有若干个课桌”,教师对于课桌来说是1个,所以教室端是1,课桌对于教室来说是若干个,所以课桌端的数字是n;以课桌和椅子为例,“每个课桌旁最多摆放4把椅子”,说明课桌旁可以摆放的椅子数量是0到4个,所以椅子对于课桌的数量是0..4,椅子端的数字是0..4,因为“每个课桌”,所以课桌对于椅子的数量是1,所以课桌端的数字是1。因为课桌,学生和椅子都是教室中的,这三者与教室的关系是聚集关系,其他是关联关系,得出答案如下

例题2.某学校下属若干院系,并能招收若干学生;每个院系下属若干老师,其中有一人为负责人;每名老师讲授课程的数量不能超过3门;每个学生至少选修一门课程,最多能选10门课程;每门课程最多能够容纳80人,若少于30人即被取消。根据上述描述,画出相应的UML图。

分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上。因为院系和学校属于一个生命周期,所以学校和院系是组合关系;根据院系中有老师和学校中有学生,可以推出学校和学生是聚集关系,老师和院系是聚集关系

例题3.学生包括本科生,研究生两种,研究生中的一部分利用课余时间担任助教;教师包括讲师和教授两种;一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。根据上述描述,画出相应的UML图。

分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上。这题主要考泛化关系,也就是继承关系。

例题4.根据以下描述,画出相应的UML图。神州六号飞船是神舟飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔组成,航天员可以在返回舱内驾驶飞船,在轨道舱工作和休息,在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,可以给飞船提供电能。根据上述描述,画出相应的UML图。

分析:蓝色标的是类,粉色标的属性和行为,这个题中不涉及属性,全部都是行为。驾驶飞船是返回舱的行为,工作和休息是轨道舱的行为,逃生是逃逸救生塔的行为,所有行为和属性在题中没有规定的情况下都设为public属性,所以前面写一个加号;前面说过依赖关系是人通过船过河,所以人和船是依赖关系,同理航天员通过轨道舱工作和休息,通过返回舱驾驶飞船,通过逃逸救生塔逃生,所以航天员和轨道舱、返回舱、逃逸救生塔都是依赖关系;神舟六号飞船由轨道舱、返回舱、推进舱、逃逸救生塔组成,所以神舟六号飞船和他们都是聚集关系;因为神州六号飞船是神舟飞船的一种,所以神州飞船是神舟六号飞船的父类,所以它们是继承关系,也就是泛化关系,由此得出答案

例题5.根据以下描述画出类图。动物有生命特征,需要氧气和水进行繁殖和新陈代谢。鸟是动物的一种,鸟拥有翅膀。其中大雁,企鹅和鸭都是鸟的一种。大雁会飞翔,企鹅要根据气候变化进行迁徙,唐老鸭是最著名的一只鸭子,会讲人话。

分析:蓝色标的是类,粉色标的属性和行为,“动物有生命特征”,生命特征是动物的属性;“需要水和氧气进行繁殖和新陈代谢”,所以新陈代谢和繁殖都是动物的行为,水和动物,氧气和动物都是依赖关系;“鸟是动物的一种”,所以鸟和动物是继承关系,也就是泛化关系;“鸟拥有翅膀”,所以有翅膀是鸟的属性,同时翅膀和鸟与人和心脏属于同理,所以翅膀这个类和鸟这个类属于组合关系;“大雁、企鹅,鸭都是鸟的一种,所以大雁、企鹅和鸭与鸟都是继承关系,也就是泛化关系;飞翔是大雁的行为,迁徙是企鹅的行为;“唐老鸭是最著名的一只鸭子,会讲人话”,所以唐老鸭和鸭是继承关系,也就是泛化关系,讲人话是唐老鸭的行为

对象图(正常情况下不会单独出题,会用在顺序图和协作图中)

1. 对象的三种表现形式

①对象名:类名

对象名在前,类名在后,用冒号来连接。对象名和类名都加下划线

②:类名(*这种形式在顺序图和协作图中常见)

这是对匿名对象的表示方法,用于尚未给对象取名字的情况,冒号不能省略

③对象名

省略掉类名,只有对象名,对象名必须加下划线

2.对象图和类图的区别

Java类的继承学生研究生类图_UML part3 类图、对象图相关推荐

  1. Java类的继承关键字_Java的第八天(类的继承、super关键字的使用、方法的重写)...

    39.类的继承java 描述类的时候,咱们若是发现有几个类有重复的属性和方法,咱们就能够采用继承的方法来设计ide 使用extends关键字来继承this 语法:设计 class 子类 extends ...

  2. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)

    上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...

  3. java基础类的继承_JAVA核心技术I---JAVA基础知识(类的继承)

    一:基本概念同C++一致 二:继承演示 1.将共同点提取出来,即形成了父类/基类/超类 –Parent class/Base class/Super class 2.而其他类则自动成为子类/派生类 – ...

  4. uml点餐系统活动图_UML建模——活动图(Activity Diagram)

    活动图概述 •活动图和交互图是UML中对系统动态方面建模的两种主要形式 •交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流 •活动图是一种表述过程基理.业务过程以及工作流的技术 ...

  5. java 什么是类的继承_Java基础,类的继承,粗略的理解希望对大家有所帮助!

    Java基础:继承 读者老爷们大家好,今天图图带大家了解一下java基础里的继承. 首先确定一下我们今天的学习的三个目标.第一个是类的继承:第二个是访问控制权限:第三个方法重写(覆盖)override ...

  6. 继承与派生(Part Ⅲ)——多重继承 虚基类

    虚基类 虚基类的作用 如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员.在引用这些同名的成员时,必须在派生类对象名后增加直接 ...

  7. C++ 面向对象 - 类的继承与派生

    目录 公有继承 -- 学生信息类 保护继承 -- 学生信息类 研究生信息类 狼人类 公有继承 -- 学生信息类 编程要求 在右侧编辑器中的Begin-End之间补充代码,设计 Student 类,并实 ...

  8. thread类 java_java入门避坑必读,通过Thread类创建java多线程

    欲善编程,多看.敲.讨论:动眼.手.大脑. 1 为什么要用多线程 平常我们做crud的时候,用到多线程的机会不多.但当我们要处理一些复杂的业务时,或者提高程序处理效率时,就绕不开多线程的使用.也有些时 ...

  9. 【C++札记】类的继承

    继承 面向对象的设计思想,类对数据做了封装,并可以加入访问权限,类的继承是面向对象思想的精髓.类的继承可以让新类从以有的类中获得已有的特征.原有类称为基类或父类,新类称为派生类或子类. 语法: cla ...

最新文章

  1. LINQ圣经——《LINQ实战》
  2. 使用NoSQL实现实体服务–第1部分:概述
  3. E1光端机和2M光端机有什么区别?
  4. leetcode —— 866. 回文素数
  5. TFS环境搭建--添加新用户
  6. git删除某次提交(某个commit)的方法【转】
  7. flex4.5的DataGrid
  8. python搭建https代理服务器_使用NGINX作为HTTPS正向代理服务器
  9. 算法学习四:算法性能分析理论基础——函数增长与渐进分析
  10. PL/SQL Developer 登录 Oracle 12c和Win10下安装Oracle 11g
  11. 为什么到今天还要坚持写博客
  12. MySQL之终端(Terminal)管理MySQL
  13. Camshift算法
  14. MSP430常见问题之开发工具类
  15. 服务器启动服务很慢_哦,地方很好,为什么教育对于启动自动驾驶服务至关重要...
  16. 【转载】Win10强制删除文件夹
  17. html怎样使字数占相同位,《古对今》教案
  18. 数据库模型设计——历史表与版本号设计
  19. 什么是计算机的网络体系结构,什么是网络体系结构-计算机网络.DOC
  20. 用Python设计抢红包系统

热门文章

  1. 20120817prbs伪随机二进制序列
  2. IE浏览器缓存第二次请求的解决方案
  3. Cent os 安装 JDK , 配置JAVA_HOME
  4. 黑马pink JavaScript笔记(7)-流程控制-循环
  5. Buy and Resell HDU - 6438(补)更新贪心
  6. C语言实现url的编码和解码
  7. 有源和无源设备的共质心布局:回顾和未来之路
  8. [FineReport]高级条件分组、斜线、自动查询、控件编辑属性、条件属性
  9. 深度学习系统 深度学习软件
  10. redis集群报错,(error) MOVED 15495 127.0.0.1:7003