UML中类之间的几种关系
关联关系用实线+箭头表示。上图显示Customer和Order是双向一对多关联关系。对应的Java代码如下所示:
class Customer {private Integer id;private String name;
private Set<Order> orders;
public Set<Order> getOrders() {return orders;}
public void setOrders(Set<Order> orders) {this.orders = orders;}
}
class Order {private Integer id;private float money;
private Customer customer;
public Customer getCustomer() {return customer;}
public void setCustomer(Customer customer) {this.customer = customer;}
}
依赖关系用虚线+箭头表示。上图显示Bicycle和Pump是依赖关系,Bicycle依赖于Pump。对应的Java代码如下所示:
class Bicycle {public void expand(Pump pump) {pump.blow();}}
class Pump {public void blow() {System.out.println("正在充气......");}}
聚合使用空心菱形+实线表示。上图显示Computer是由MainBoard和DisplayCard等组成的。对应的Java代码如下所示:
class Computer {private MainBoard mainBoard;private DisplayCard displayCard; public void on() {System.out.println("开启计算机......");}
public void close() {System.out.println("关闭计算机......");}
public void run() {System.out.println("计算机正在运行......");}}
class MainBoard {public void control() {System.out.println("控制计算机......");}}
class DisplayCard {public void display() {System.out.println("计算显示数据......");}}
class People {private Head head;private Hand hand;private Leg leg;
public void think() {head.think();}
public void holdThing() {hand.holdThing();}
public void walk() {leg.walk();}}
class Head {public void think() {System.out.println("思考......");}}
class Hand {public void holdThing() {System.out.println("拿东西......");}}
class Leg {public void walk() {System.out.println("走路......");}}
泛化用空心三角形+实线表示。上图表示Student继承People。对应的Java代码如下所示:
class People {protected String name;protected String sex;protected Date birthday;
public void eat() {System.out.println(name + "正在吃饭......");}
public void drink() {System.out.println(name + "正在喝水......");}
public void sleep() {System.out.println(name + "正在休息......");}}
class Student extends People {public void study() {System.out.println(name + "正在学习......");}}
实现用三角形箭头和虚线表示。上图表示类CarDriver和PlaneDriver都实现了Driver接口。对应的Java代码如下所示:
public interface Driver {void drive(); }class CarDriver implements Driver {
public void drive() {System.out.println("驾驶汽车......");}
}
class PlaneDriver implements Driver {
public void drive() {System.out.println("驾驶飞机......");}
}
UML中类之间的几种关系相关推荐
- 浅谈UML类图中类之间的5种关系
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
- UML 类之间的几种关系
2019独角兽企业重金招聘Python工程师标准>>> 许久不用uml,又忘记这部分资料了,现给记录下.本资料为引用资料,传送门:http://uml.org.cn/oobject/ ...
- 类与类之间的几种关系
http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html 类与类之间的几种关系 一.继承关系 继承指的是一个类 ...
- SQL外键foreign key 表与表之间的三种关系
表与表之间的三种关系 多对一关系表 注意事项: 一对多表关系,外键字段建在多的一方. 在创建表的时候,一定要先建被关联表. 在录入数据的时候,也必须先录入被关联表. 删除 一定要先删除主键表,才可以删 ...
- UML--类之间的五种关系
UML中的关系(Relationships)主要包括5种:关联关系.聚合关系.依赖关系.泛化关系.实现关系 1.关联(Association)关系 关联关系是一种结构化的关系,指一种对象和另一种对象有 ...
- 面向对象类和类之间的几种关系
一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...
- 【UML】例析UML类图的几种关系
最近在学习UML,别的先不提,英文单词到是学会了不少..既然Rational Rose就是英文版的,索性我就所有东西都按照英文意思来理解,慢慢来,当初学VB的时候我也不是一下子就能记住Label的.. ...
- UML常用图的几种关系的总结
在UML的 类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Com ...
- [转] UML类图的几种关系总结
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition ...
最新文章
- Sublime插件开发 启动Anaconda并运行对应Python脚本
- python爬虫脚本ie=utf-8_python脚本-共享文件爬虫
- 深入体验php项目开发.pdf,《深入体验PHP项目开发》.(谭贞军).[PDF]
- 文本分析软件_读书笔记:伍多库卡茨质性文本分析:方法、实践与软件使用指南...
- 4-算法 校门外的树
- Android 源代码中的res
- Python+Opencv图像处理新手入门教程(一):介绍,安装与起步
- leetcode题库1014-- 最佳观光组合
- 32. My Experiences in the Factories 我在工厂的经历
- java long类型6_Java学习6——基本数据类型及其转换
- 【word论文排版教程0】论文制作流程
- ddr2之OCD、ODT和Post CAS技术
- [转]在计算机领域做研究的一些想法
- word2010加载MathType打开时显示“安全警告,宏已被禁用”解决办法
- Call From xx/x.x.x.x .hdp1:9000:java.net.ConnectException:拒绝连接For m...see:http://wiki.apac..Refused
- 三年的工作-软通动力
- python翻译中文读法_Python如何将中文翻译成拼音?,又,一个,奇葩,要求,是,转,的...
- ssh连接提示IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY
- 用matplotlib作图时,如何将坐标轴设置成对数坐标?
- 金蝶ERP K3 介绍
热门文章
- 虚拟化 php性能测试,KVM的一些基准测试和性能测试数据分享
- NMS 非极大值抑制
- 【直播回放】2小时全面剖析图像分类任务,学习CV必知
- 【学员分享】深度学习计算机视觉,两个星期从入门到上线
- 2022年全球及中国光纤馈通件行业发展建议与十四五规划动向展望报告
- 全球及中国绿色建筑产业规模现状与未来走势分析报告2022版
- 碳中和背景下中国水泥行业发展预测与投资价值分析报告2022-2028年版
- 全球及中国豪华游轮行业投资策略分析及“十四五“发展规划建议报告2021-2027年版
- 有关缅甸语学习的一些网站
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析