介绍:
1)统一建模语言,是一种用于软件系统分析和设计的语言工具,用于帮软件开发人员进行思考和记录思路的结果。
2)uml本身是一套符号的规定,这些符号用于描述模型中的各个元素和它们的关系,比如 类、接口、实现、泛化、依赖、组合、聚合等。

UML图分类:
1)用例图
2)静态结构图:类图、对象图、包图、组件图、部署图
3)动态行为图:交互图(时序图、协作图)、状态图、活动图
类图是米搜书类与类之间的关系的,为uml图的核心。

uml类图:

1)描述类(对象)本身的组成与类(对象)之间的各种静态关系。

2)类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。

IDEA的菜单栏:

idea java类关系图怎么画 idea整个项目的uml类图_依赖关系

类图—依赖关系

只要是在类中用到了对象,那么他们之间就存在依赖关系,如果没有对方,连编译都通不过。

idea java类关系图怎么画 idea整个项目的uml类图_类图_02

public class PersonServiceBean {
    private PersonDao personDao;

    public void save(Person person){
    }

    public IDCard getIDCard(Integer personId){
        return new IDCard();
    }
    public void modify(){
        Department department = new Department();
    }
}

类图—泛化关系

泛化关系实际上就是继承关系,它是依赖关系的特例。

idea java类关系图怎么画 idea整个项目的uml类图_idea java类关系图怎么画_03

public abstract class DaoSupport {
    public void save(Object entity){
    }
    public void delete(Object id){
    }
}
public class PersonServiceBean extends DaoSupport {
}

类图–实现关系

实际上就是A类实现了B接口,它们依赖关系的特例。

idea java类关系图怎么画 idea整个项目的uml类图_关联关系_04

public interface PersonService {
    public void delete(Integer id);
}
public class PersonServiceBean implements PersonService {
    @Override
    public void delete(Integer id) {
        
    }
}

类图—关联关系
关联关系实际上就是类与类之间的联系,是依赖关系的特例。
关联关系具有导航性:也就是单向或双向关系。

单向一对一关系

idea java类关系图怎么画 idea整个项目的uml类图_idea java类关系图怎么画_05

public class Person{
	public IDCard card;
}
public class IDCard{}

双向一对一关系

idea java类关系图怎么画 idea整个项目的uml类图_关联关系_06

public class Person{
	private IDCard card;
}
public class IDCard{
	private Person person;
}

类图—聚合关系

聚合关系:表示整体与部分的关系,整体与部分可以分开聚合关系是 关联关系的特例,所以具有导航性和多重性。

如:一台电脑由键盘、鼠标、显示器等组成;组成电脑的各个配件可以从电脑上分离出来,使用带空心菱形的实现表示。

idea java类关系图怎么画 idea整个项目的uml类图_依赖关系_07

public class Mouse{}
public class Moniter{}

public class Computer {
    private Mouse mouse;
    private Moniter moniter;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMoniter(Moniter moniter) {
        this.moniter = moniter;
    }
}

类图—组合关系

组合关系:整体与部分的关系,但是整体与部分不可分开。

看一个案例:

在程序中,我们定义实体Person与IDCard,那么Head和Person就是组合,IDCard和Person就是聚合。

idea java类关系图怎么画 idea整个项目的uml类图_关联关系_08

public class Person{
	private IDCard card;
	private Head head=new Head();
}
public class IDCard{}
public class Head{}