UML学习笔记(三):运用面向对象思想
类的可视化表示
如果WashingMachine(洗衣机)类是Household Appliances(家用电器)包的一部分,那么这个类的名字为:Household Appliances::WashingMachine。包名在左,类名在右,中间用双冒号隔开。这种类型的类名叫:路径名(pathname)。
属性
单字属性名小写。如果属性名包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。
对象名首字母小写,后面跟一个冒号,冒号后面是该对象所属的类名,并且整个名字要带下划线。
命名实例:myWasher:WashingMachine
匿名实例:WashingMachine
例:类的属性在该类的对象中都有具体值
例:属性可以带类型和缺省值
操作
单字操作名小写。如果操作名包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。
在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作较函数(function),它在完成操作后要返回一个返回值。可是指明函数的返回值及返回值的类型。上述全部的操作信息被称为操作的型构。
例:操作的型构
属性、操作和可视化表达
有时,只显示类的一部分属性和操作很有用。为了说明你只表示出部分操作和属性,可以在列表的后面加上3个小点“…”。这个符号叫省略符,这种省略了一个或多个属性或者操作的表示法叫做类的省略表示法。
如果属性或者操作列表太长,可以用构造型来组织属性或操作列表,以方便理解。构造型是UML提供的扩展机制:它允许你创建新的模型元素以解决具体问题。构造型用双尖角括号括住的名字来表示。
例:省略符号说明还有没列出来的属性或操作
例:可以使用构造型来组织属性和操作列表
职责和约束
职责描述了类做什么——也就是类的属性和操作能完成什么任务。
这里的想法是要有足够的信息以非二义性的方法去描述一个类。说明类的职责是消除二义性的一种非形式化的方法。
更形式化的方法是使用约束,它是一个用花括号括起来的自由格式的文本。括号中的文本指定了该类所要满足的一个或者多个规则。
例:在类图标中,操作列表区域的下面区域可以写类的职责
例:用花括号括起来的规则表达式限制了洗衣机的容量之只能三者选一
附加注释
UML学习笔记(三):运用面向对象思想相关推荐
- Spring框架学习笔记(三)(AOP,事务管理)
Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- 吴恩达《机器学习》学习笔记三——多变量线性回归
吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...
- Python学习笔记三之编程练习:循环、迭代器与函数
Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...
- Dr_can Kalman Filter学习笔记(三)
Dr_can Kalman Filter学习笔记(三) 本文学习自Dr_can卡尔曼滤波关于Kalman Gain的推导 本文对卡尔曼增益进行一个详细的推导. 一.问题引入 在笔记二中我们得到了状态空 ...
- MySQL学习笔记(三)查询
写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...
- Java学习笔记 六、面向对象编程中级部分
Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Ethernet/IP 学习笔记三
Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
最新文章
- 【转】UIColor对颜色的自定义
- Algs4-2.1.37部分有序
- python生成的词云没有图案_Python生成词云的实现代码
- Linux gcc编译c/c++基本过程
- 【51Nod - 1010 】只包含因子2 3 5的数 (打表,有坑越界)
- mysql mybatis springMVC
- 微信小程序版本自动更新弹窗提示
- oneproxy出现2103错误代码解决方案
- linux设备实现otg移动盘,Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘...
- Chrome历史版本以及ChromeDriver下载地址对应的版本
- 线性代数拾遗(4)—— 非齐次线性方程组通解的结构
- Docker 基于centos7制作jdk8 镜像并添加字体; 运行jar 包
- yum执行出错,There are no enabled repos
- Unity3d用脚本实现Button图片的更改
- Canopen协议 (1):网络状态管理(NMT)
- VMware 安装 Linux 系统
- reference pics
- Mybatis开启驼峰命名,作用
- PyCharm关闭更新提示
- 迅为开发板4412开发板-ANROID系统的烧写方法分享
热门文章
- 雷神开机logo更改_黑武士再度来袭 雷神第三代911黑武士游戏台式机评测
- matlab中的运算函数,基于Matlab软件的函数运算在实践中的应用
- MVVM是什么?谈谈你对MVVM的理解?
- 《天天数学》连载47:二月十六日
- 安卓第二阶段实训预备案例:访问媒体库音频数据
- 【BZOJ1922】【Tyvj1736】【codevs2129】大陆争霸,无语最短路
- python counter用法_10个易被忽视但应掌握的Python基本用法
- 2017.3.6~2017.3.7 Harry And Magic Box 思考记录(特别不容易)
- java for in 循环_js的for in循环和java里foreach循环的区别分析
- 如何下载项目所需要jar包