UML图中类与类之间的关系

注释(comment)
注释就是对类图的补充说明,可以附加在任何元素上,用 右上角有折角的矩形来表示,其内放置说明文字,通过 虚线连接被注释的元素。

UML图中类与类之间的关系
类(Class)
在面向对象(OO) 编程中,类是对现实世界中一组具有相 同特征的物体的抽象。
在UML类图中,类使用包含类名、属性(field) 和方法 (method) 且带有分割线的矩形来表示:
UML图中类与类之间的关系
类的属性的完整表示方式
* 可见性 名称 :类型 [ = 缺省值]*
中括号中的内容表示是可选的
类的方法的完整表示方式:
可见性 名称(参数列表) [: 返回类型]
中括号中的内容是可选的。
UML图中类与类之间的关系

在UML中,接口有两种表示方式:

  • 普通接口表示法(飞翔);
  • 棒棒糖表示法(讲人话),使用一个带有名称的小圆圈来表示 ,在旁边写上相应接口名称,没有具体接口方法。  接口名称通常以大写字母I(interface)开头

UML图中类与类之间的关系
UML图中类与类之间的关系

类与类之间的关系(relation)

UML图中类与类之间的关系

1. 依赖关系
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没 有对方,编绎通过不了。虚线箭头
UML图中类与类之间的关系

  • 类图—关联关系(Association)
    关联关系实际上就是类与类之间的联系,是依赖关系的特例。 实线箭头
    关联具有导航性:即双向关系或单向关系
    关系具有多重性:

  • “1”(表示有且仅有一个),

  • “0…”(表示0个或者多个),

  • “0,1”(表示0个或者1个),

  • “n…m”(表示n到m个都可以),

  • “m…*”(表示至少m 个)。
    单向一对一关系
    //一个人一个身份证号 一对一单向的 一对一
    public class Person { private IDCard card;}
    public class IDCard{}
    UML图中类与类之间的关系
    双向一对一关系
    //一个人对应一个身份证号 一对一
    //一个身份证号也对应一个人
    public class Person { private IDCard card;}
    public class IDCard{ private Person person; }
    UML图中类与类之间的关系
    类图—继承关系(Inheritance)
    继承关系也称泛化关系,是依赖关系的特例。 A类继承了B 类也相当于A类用到了B类。空心三角形+实线
    public abstract class DaoSupport{
    public void save(Object entity){ }
    public void delete(Object id){ }
    }
    public class PersonServiceBean extends
    DaoSupport{ }
    PersonServiceBean继承了DaoSupportUML图中类与类之间的关系
    类图—实现关系(Implementation)
    实现关系实际上就是A类实现B接口,是依 赖关系的特例,依赖关系更强。空心三角 形+虚线
    public interface PersonService {
    public void delete(Interger id);
    }
    public class PersonServiceBean implements PersonService { public void delete(Intergerid){} }
    PersonServiceBean实现了PersonService这个接口-实现关系 实现关系实际上就是A类实现B接口。
    UML图中类与类之间的关系
    类图—聚合关系(Aggregation)
    聚合关系表示的是整体和部分的关系,整体与部分可以分 开。聚合关系是关联关系的特例,所以他具有关联的导航 性与多重性。使用带空心菱形的实线,菱形指向整体来表 示。

如果认为:
关系是可以分开的,则是聚合关系; 关系是不可以分开的,则是组合关系。 鼠标是可以分离的:可以插上也可以不插 上,电脑没有鼠标还是一个电脑; 显示器也是可以分离的;鼠标类、显示器 类与电脑类构成聚合关系。
对应类图:
UML图中类与类之间的关系
类图—组合关系(Composition)
组合关系:也是整体与部分的关系,但是整体与部分不可以分 开。实心菱形+实线
public class Person{
private IDCard card; //聚合
private Head head = new Head(); //组合
}
public class IDCard{}
public class Head{}
UML图中类与类之间的关系
类与类之间的关系(relation)
在UML类图中,常见的有以下几种关系:
UML图中类与类之间的关系
UML图中类与类之间的关系