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

it2023-02-26  97

类与类之间的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; ... }


依赖:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例时,或者依赖另一个对象的服务时,称为依赖关系,可以作为方法参数 代码及类图表示: (虚线单向箭头) 例如:驾驶员开车,在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(); } }


最新回复(0)