类的可视化表示

如果WashingMachine(洗衣机)类是Household Appliances(家用电器)包的一部分,那么这个类的名字为:Household Appliances::WashingMachine。包名在左,类名在右,中间用双冒号隔开。这种类型的类名叫:路径名(pathname)。
   

属性

单字属性名小写。如果属性名包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。

对象名首字母小写,后面跟一个冒号,冒号后面是该对象所属的类名,并且整个名字要带下划线。

命名实例:myWasher:WashingMachine

匿名实例:WashingMachine

例:类的属性在该类的对象中都有具体值
   

例:属性可以带类型和缺省值
   

操作

单字操作名小写。如果操作名包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。
   

在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作较函数(function),它在完成操作后要返回一个返回值。可是指明函数的返回值及返回值的类型。上述全部的操作信息被称为操作的型构。

例:操作的型构
   

属性、操作和可视化表达

有时,只显示类的一部分属性和操作很有用。为了说明你只表示出部分操作和属性,可以在列表的后面加上3个小点“…”。这个符号叫省略符,这种省略了一个或多个属性或者操作的表示法叫做类的省略表示法。

如果属性或者操作列表太长,可以用构造型来组织属性或操作列表,以方便理解。构造型是UML提供的扩展机制:它允许你创建新的模型元素以解决具体问题。构造型用双尖角括号括住的名字来表示。

例:省略符号说明还有没列出来的属性或操作
   

例:可以使用构造型来组织属性和操作列表 
   

职责和约束

职责描述了类做什么——也就是类的属性和操作能完成什么任务。

这里的想法是要有足够的信息以非二义性的方法去描述一个类。说明类的职责是消除二义性的一种非形式化的方法。

更形式化的方法是使用约束,它是一个用花括号括起来的自由格式的文本。括号中的文本指定了该类所要满足的一个或者多个规则。

例:在类图标中,操作列表区域的下面区域可以写类的职责
   

例:用花括号括起来的规则表达式限制了洗衣机的容量之只能三者选一

附加注释

UML学习笔记(三):运用面向对象思想相关推荐

  1. Spring框架学习笔记(三)(AOP,事务管理)

    Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...

  2. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  3. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  4. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

  5. Dr_can Kalman Filter学习笔记(三)

    Dr_can Kalman Filter学习笔记(三) 本文学习自Dr_can卡尔曼滤波关于Kalman Gain的推导 本文对卡尔曼增益进行一个详细的推导. 一.问题引入 在笔记二中我们得到了状态空 ...

  6. MySQL学习笔记(三)查询

    写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...

  7. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  8. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  9. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

  10. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

最新文章

  1. 【转】UIColor对颜色的自定义
  2. Algs4-2.1.37部分有序
  3. python生成的词云没有图案_Python生成词云的实现代码
  4. Linux gcc编译c/c++基本过程
  5. 【51Nod - 1010 】只包含因子2 3 5的数 (打表,有坑越界)
  6. mysql mybatis springMVC
  7. 微信小程序版本自动更新弹窗提示
  8. oneproxy出现2103错误代码解决方案
  9. linux设备实现otg移动盘,Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘...
  10. Chrome历史版本以及ChromeDriver下载地址对应的版本
  11. 线性代数拾遗(4)—— 非齐次线性方程组通解的结构
  12. Docker 基于centos7制作jdk8 镜像并添加字体; 运行jar 包
  13. yum执行出错,There are no enabled repos
  14. Unity3d用脚本实现Button图片的更改
  15. Canopen协议 (1):网络状态管理(NMT)
  16. VMware 安装 Linux 系统
  17. reference pics
  18. Mybatis开启驼峰命名,作用
  19. PyCharm关闭更新提示
  20. 迅为开发板4412开发板-ANROID系统的烧写方法分享

热门文章

  1. 雷神开机logo更改_黑武士再度来袭 雷神第三代911黑武士游戏台式机评测
  2. matlab中的运算函数,基于Matlab软件的函数运算在实践中的应用
  3. MVVM是什么?谈谈你对MVVM的理解?
  4. 《天天数学》连载47:二月十六日
  5. 安卓第二阶段实训预备案例:访问媒体库音频数据
  6. 【BZOJ1922】【Tyvj1736】【codevs2129】大陆争霸,无语最短路
  7. python counter用法_10个易被忽视但应掌握的Python基本用法
  8. 2017.3.6~2017.3.7 Harry And Magic Box 思考记录(特别不容易)
  9. java for in 循环_js的for in循环和java里foreach循环的区别分析
  10. 如何下载项目所需要jar包