UML类关系

UML:类关系

一、依赖

1、介绍

A类使用到了B类,那就可以描述为A依赖于B。

如果A类没有B类,则无法通过编译

2、UML

在这里插入图片描述

3、代码

/**
 * 人
 */
public class Person {

    /**
     * 吃
     */
    public void eat(Food food){
        System.out.printf("人吃"+food.createFood());
    }

}
/**
 * 食物
 */
public class Food {

    /**
     * 创建食物
     */
    public String createFood(){
        return "食物";
    }

}

4、总结

类A依赖于类B:

  • 类B是类A的成员属性
  • 类B是接收的参数类型
  • 类B是方法的返回类型
  • 类A方法中使用到了类B

二、泛化

1、介绍

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

2、UML

在这里插入图片描述

3、代码

/**
 * 图形
 */
public class Graph {
    
}
/**
 * 三角形
 */
public class Triangle extends Graph{
}

4、总结

泛化关系实际上就是继承关系

如果B类继承了A类,那么就可以说B和A存在泛化关系

三、实现

1、介绍

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

2、UML

在这里插入图片描述

3、代码

/**
 * 用户接口
 */
public interface UserService {
    /**
     * 获取用户
     */
    void getUser();
}
/**
 * 用户接口实现类
 */
public class UserServiceImpl implements UserService{

    /**
     * 获取用户
     */
    @Override
    public void getUser() {

    }
}

四、关联

1、介绍

关联关系是类与类之间的联系,关联关系是依赖关系的特例

关联关系具有导航性:即双向关系和单向关系

关系具有多重性:

  • ​ “1”,表示有且仅有一个
  • ​ “0…”,表示0个或多个
  • ​ “0,1”,表示0个或一个
  • ​ “n…m”,表示n到m个都可以
  • ​ “n…”,表示至少n个

2、UML

在这里插入图片描述

3、代码

/**
 * 人
 */
public class Person {
    private IdCard idCard;
}
/**
 * 身份证
 */
public class IdCard {
}
/**
 * 身份证
 */
public class IdCard {
    private Person person;
}

五、聚合

1、介绍

聚合关系表示的是整体和部分的关系,整体与部分可以分开。

2、UML

在这里插入图片描述

3、代码

/**
 * 电脑
 */
public class Computer {

    private Keyboard keyboard;

    private Mouse mouse;

    public void setKeyboard(Keyboard keyboard) {
        this.keyboard = keyboard;
    }

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }
}
/**
 * 键盘
 */
public class Keyboard {
}
/**
 * 鼠标
 */
public class Mouse {
}

六、组合

1、介绍

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

2、UML

在这里插入图片描述

3、代码

/**
 * 人
 */
public class Person {
    
    private Head head;

    public void setHead(Head head) {
        this.head = head;
    }
}
/**
 * 头
 */
public class Head {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大树下躲雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值