全网最简:秒懂uml类与类之间的关系

1 篇文章 0 订阅
1 篇文章 0 订阅

uml类与类之间的关系

在网上查有关uml中类与类之间各线条的关系,发现各种版本的讲解都不是特别的详细,网上查询出现最多的版本是这个:点击打开链接,对里面uml类图的详解不是特别满意,于是通过自己整理和学习,对uml中类图各种知识点做了个简单的描述和总结,以Java的语句为基础做一个简单的总结,毕竟还是小白阶段,如果有哪些不对或者不成熟的地方,还请各位大神多多指正!

推荐一款用于画uml的建模工具:ProcessOn 一款基于浏览器语言HTML5在线UML建模工具,属于国内创业团队的产品,用QQ就可以登录,建议体验一下!官方网站:processon.com


类与类之间的六大关系:

1、依赖


2、关联


3、泛化(继承)


4、实现


5、聚合


6、组合


具体分析:

1、依赖:类的某个功能需要另一个类辅助才能完成

依赖是六大关系中最弱的一种关系,主要有两种实现的方式:
①作为方法参数实现
如:人读书(人依赖书)
read(Book book){

}
②直接构建某对象
void program(Computer computer){
Computer computer = new Computer();
}
这种方法和①比起来无法改变初始值

uml图解:


2、关联:一个类的多个方法都需要另一个类的辅助才能完成

代码实现:
class Book{
private String name;
private float price;
private Person author;
}
Book要关联person();(关联这里是关系轻的叫法,组合与关联作用类似,但是属于一种强关系)
一个类作为另一个类的属性(这里author一定要记得初始化,不然会报空指针错误)

uml图解:


3、泛化(继承):表示一个类与另一个类是父子关系

(这个比较好理解,泛化就是java中的继承)不明白的同学可以学习java继承这一章,代码关键字:extends

doganimal,dog和animal就是继承,dog是子类,animal是父类

代码实现:

class Animal{ }

class Dog extends Animal{ }


uml图解:


同时接口可以继承接口



4、实现:指的是一个class类实现interface接口(可以是多个)的功能(接口中没有属性);实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识

代码实现:
interface A{
}
clss B implements A{

}

uml图解:


5、聚合:聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系

聚合中整体与部分之间是可分离的(组合和聚合比起来就是不可分离的,是一种强关联关系),他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如鸭子与鸭群,学生与班级都是多对一的关系,但是鸭子、鸭群、学生、班级又是可以彼此分离单独存在的。

代码实现:
class Student{ }
calss ClassInfo{//班级有多个学生
private Student[] student;
}

uml图解:


6、组合:组合也是关联关系的一种特例,这种关系比聚合更强,也称为强聚合

组合同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和头,轮胎和汽车

uml图解:


关联、聚合和组合区别图解:


几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值