UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表一般包含几个块或框,链接线和做为模型附加信息之用的文本。这些虽简单却很是重要,在UML规则中相互联系和扩展。以上内容来自百度百科。算法
推荐一个绘图和学习的在线工具ProcessOn设计模式
UML类图,属于UML图中的一种,是在面向对象语言用中用来表示一个类的图形,基本的UML类图以下所示:数组
类简单表示:
如上图,就表示一个类,三个格子从上至下分别表示:微信
类名(若是是接口,就使用斜体表示)架构
类的特性(通常是类的字段和属性,可没有这一行)app
类的操做(通常是类的方法或行为)ide
它们前边的符号有如下几类:工具
“+”表示public,“-”表示private,“#”表示protected学习
即最上边的UML类图表示代码以下:flex
public class Student { private String name; private String sex; private int age; public void study() { System.out.println("study"); } protected void sleep() { System.out.println("sleep"); } public void eat() { System.out.println("eat"); }//get 和set方法和这个类的属性无关}
类的关系表示:


public class SeniorSchool extends Student { public void graduate() { System.out.println("毕业"); } public void cllegeEntranceExam() { System.out.println("高考"); }}

让高三学再实现玩这个接口
public interface Play { void play();}
public class SeniorSchool extends Student implements Play { public void graduate() { System.out.println("毕业"); } public void cllegeEntranceExam() { System.out.println("高考"); }//实现接口方法 @Override public void play() { System.out.println("高三学生玩"); }}

所谓依赖关系,就是构造这个类的时候,能够依赖其余的类。好比:人类依赖水和空气,学生也是人类,表示以下:
Student有一个构造方法以下:
/** * Student的一个构造方法 * 依赖于Air 和 Water * * @param air * @param water */ public Student(Air air, Water water) { }

所谓关联关系,其实就是这个类有一个属性是其余类,以下图和代码。
宿舍类
public class Dormitory { private String num;}
高一学生类
public class PrimaryStudent extends Student { private Dormitory dormitory;}
注意它和依赖关系的区别,有不少小伙伴很容易理解为这才是依赖关系

直接看代码,一目了然,学校中有不少学生就是一个聚合关系。说这个学校多是有些难以被接受,若是是用学生群来表示可能会更容易理解
public class School { private Student[] students;}

它表示的是一种强‘拥有’关系,和以前的依赖与关联有很大的类似,就好比Stuent类中的这个name,sex,age属性,它就是一种组合关系,它们是一个Student类的组成,由于在初始化一个Student对象时,这三个就必须有。虽然这三个的类型是一个基本类型,若是是一个类的话就更好理解了,可是“万物皆对象”,也是能够勉强理解的。
为了更好的理解,咱们就给Student这个类一个组合关系的Book类。
public class Student { private Book book; public Student(Book book) { this.book = book; }}
最后再贴上整个图:
Java学习
设计模式
数组结构算法
小鱼与Java

本文分享自微信公众号 - 小鱼与Java(Fish_Java)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。