UML类图笔记

本文详细介绍了UML类图,包括依赖、关联、泛化(继承)、实现、聚合和组合这六种关系。类之间的依赖表示一个类使用了另一个类;关联具有导航性和多重性;泛化代表继承;实现表示类实现接口或抽象类;聚合和组合则描述了整体与部分的关系,其中组合关系更为紧密,表示部分与整体不可分割。
摘要由CSDN通过智能技术生成

UML类图

UML类图:用于描述系统中类(对象)本身的组成和类(对象)之间的各种静态关系
类之间的关系主要有:依赖、关联、泛化、实现、聚合、组合。

依赖(使用)

定义:A类中用到了B类,则说A依赖于B idea的PlantUML插件用 …>表示依赖

class A{
    B b;  //B类作为A类的成员
    C returnC(){  //C类对象作为A的方法的返回值
        return new C();
    }
    void play(D d){};  //D类对象作为参数
    void test(){
        E e = new E();  //A的一个方法体中使用E类(虽然违反了迪米特法则)
        e.method();
    }
}
UML类图:
class A{
    B b
    C returnC()
    void play(D d)
    void test()
}
class B{
}
class C{
}
class D{
}
class E{
}
A..>B
A..>C
A..>D
A..>E

在这里插入图片描述

关联

关联关系实际是类和类之间的联系。关联关系是一种特殊的依赖
关联具有导航性:即单向关系或双向关系
关系具有多重性:可以一对多,多对多

单向一对一关联:
class Person{
    private IDCard idCard;
}
class IDCard{
}
UML类图:
class Person{
    IDCard idCard;
}
class IDCard{
}
Person --> IDCard

双向一对一关联:
class Person{
    private IDCard idCard;
}
class IDCard{
    private Person person;
}
多对多双向关联:
class Teacher{
    List<Student> studentList;
}
class Student{
    List<Teacher> teacherList;
}

单向一对一关联:
单向一对一

泛化(继承)

泛化关系实际上就是继承关系。泛化是一种特殊的依赖<|- - 用于表示继承

class A{
}
class Aa extends A{  
}
UML类图:
class A{
}
class Aa{
}
A<|--Aa

在这里插入图片描述

实现

一个类实现抽象类或者是接口;实现是依赖关系的一个特例用<|…表示实现

interface interf{
}
class Aimpl implements interf{   
}
interface interf{
}
class Aimpl{
}
interf <|.. Aimpl

在这里插入图片描述

聚合(Aggregation)

聚合关系表示的是整体和部分的关系。整体与部分可以分开聚合关系是关联关系的特例,因为它具有关联关系的导航性和多重性。 用 --o 表示聚合

class Computer{  //电脑聚合了鼠标和屏幕,而且鼠标和屏幕可以与电脑分开
    private Mouse mouse;  //鼠标和电脑可以分离
    private Moniter moniter; //屏幕和电脑可以分离
    public void setMouse(Mouse mouse){ 
		this.mouse = mouse;
	}
	public void setMoniter(Moniter moniter){
		this.moniter = moniter;
	}
}
class Mouse{
}
class Moniter{  //屏幕
}
UML类图:
class Computer{
    Mouse mouse;
    Moniter moniter;
}
class Mouse{
}
class Moniter{
}
Mouse --o Computer
Moniter --o Computer

在这里插入图片描述

组合(Composition)

如果整体和部分不可分割,则为组合关系。 用 --* 表示组合关系。

class Computer{
    Mouse mouse = new Mouse();  //鼠标和电脑同生同死,当电脑对象被创建,鼠标对象也被创建,当电脑被销毁,鼠标对象也被销毁。
    Moniter moniter = new Moniter();
}
class Mouse{
}
class Moniter{  //屏幕
}
UML类图:
class Computer{
    Mouse mouse = new Mouse();
    Moniter moniter = new Moniter();
}
class Mouse{
}
class Moniter{
}
Mouse --* Computer
Moniter --* Computer

在这里插入图片描述
组合和聚合

class Person{
    private String IDCard;   //Person和IDCard是聚合关系,因为人可以没有身份证
    private Head head = new Header();  //Person和Head是组合关系,不可分割,因为人不能没有头
}
注:如果在程序其他地方有写,当Person创建的同时创建IDCard,且销毁Person的同时销毁IDCard,同生共死,则Person和IDCard上升为为组合关系

可参考:
https://www.cnblogs.com/liruilong/p/11506280.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值