觉得看文字比较费解的可以看视频
视频地址:https://www.bilibili.com/video/BV1P741127u7from=search&seid=3523200275187714663

UML类图

统一建模语言(Unified Modeling Language,缩写UML)是非专利的第三代建模和规约语言。
UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

属性的表示方法

+: 表示为public
-: 为private

: 为protected

~:表示packetage 比较少用

我们要在一个类中表示返回值等等内容:

UML类图.jpg

依样画葫芦就可以了。
对于接口一般用斜体表示,static函数 下面加一个下划线。

关系

这部分比较重要,下面介绍 关联、泛化(继承)、聚合、组合、依赖和实现这几种关系

UML.jpg
注意看箭头方向

关联

关联就是强调两个类之间的联系,关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A。
我觉得只要是成员变量的关系就会存在一个关联关系。

泛化

就是继承,如上图动物园继承自景点。

实现

狮子、乌龟继承自动物。值得一提的是动物是接口,也就是说狮子和乌龟如果继承动物这个接口的话就需要实现其中的方法。因为这个比较特殊,所以我们一般对于接口的继承关系的箭头为虚线。

聚合

如上图的售票处聚合成动物园。如果动物园消失了,那么售票处也就没有了。这种关系强调的是个体离开聚合后的整体是无法存在的。

组合

图上图的动物组合成动物园,乌龟组合成乌龟群。乌龟群如果消失了,乌龟还在,同时动物园被拆了动物也还活着。这种组合关系强调的是组合中的个体离开整体后仍然能够存在。

依赖

依赖关系是用一套带箭头的虚线表示的;他描述一个对象在运行期间会用到另一个对象的关系;

与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;

显然,依赖也有方向,双向依赖是一种非常糟糕的结构,我们总是应该保持单向依赖,杜绝双向依赖的产生;

注:在最终代码中,依赖关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系;依赖关系除了临时知道对方外,还是“使用”对方的方法和属性;


依赖 和 关联的区别

转自https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html

 依赖(dependency)

  可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用。用带虚线的箭头。

  

 关联(association)

  他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

依赖和关联区别:我用锤子修了一下桌子,我和锤子之间就是一种依赖,我和我的同事就是一种关联。依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系。关联是类之间的一种关系,例如老师教学生,老公和老婆这种关系是非常明显的。依赖是比较陌生,关联是我们已经认识熟悉了。

类间联系

类与类之间由弱到强关系是
没关系 > 依赖 > 关联 > 聚合 > 组合。