类与类之间的6中关系及UML表示方法

类与类之间的6中关系及UML表示方法


继承:类与类或者接口与接口之间的父子关系
代码及类图表示:

class Person{

}
class Student extends Person{
	
}

(实线+实心箭头)
例如:Person类和Student类
在这里插入图片描述


实现: 一个类实现一个或者多个接口的方法
代码及类图表示:

interface List{
	
}
class AbstractList implements List{
	
}
interface A{
	
}
interface B{
	
}
class C implements A,B{
	
}

(虚线+空心箭头)
例如:List接口和AbstractList类
在这里插入图片描述
在这里插入图片描述


关联:分为单项,双向,可以作为成员变量
代码及类图表示:
(单向箭头)
例如:”一个登录界面类LoginFrom中包含一个JButton类的注册按钮loginButton

class JButton{

}
class LoginButton{
	private JButton loginButton;
	...
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201020203400529.png#pic_center


依赖:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例时,或者依赖另一个对象的服务时,称为依赖关系,可以作为方法参数
代码及类图表示:
(虚线单向箭头)
例如:驾驶员开车,在Driver类的driver()方法中将Car类型的对象car作为一个参数传递,以便在driver()方法中能够调用car的move()方法,且驾驶员的driver()方法依赖车的move()方法,因此类Driver依赖类Car

class Driver{
    public void driver(Car car){
        car.move();
    }
}
class Car{
    public void move(){
    }
}

在这里插入图片描述


聚合:整体和个体的关系,可以作为成员变量。成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。
代码及类图表示:
(空心菱形)
例如:汽车发动机(Engine)是汽车(Car)的组成部分,但是发动机可以独立存在

class Engine{  
}
class Car{
    private Engine engine;
    public Car(Engine engine){
        this.engine=engine;
    }
    public void setEngine(Engine engine){
        this.engine=engine;
    }
}

在这里插入图片描述


组合:整体和部分的关系,整体负责部分的生命周期,之间是共生共死的关系,且部分单独存在是没有任何意义的,可以作为成员变量
代码及类图表示:
(实心菱形)
例如:人的头(Hand)和嘴巴(Mouth),嘴巴是有的组成部分之一,而且头没了,则嘴巴也就没了

class Mouth{
	
}
class Head{
	private Mouth month;
	public Head(){
		mouth=new Mouth();
	}
}

在这里插入图片描述


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值