UML类图详解

1.注释(comment)
注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。
在这里插入图片描述
2.类(Class)
在面向对象(OO) 编程中,类是对现实世界中一组具有相同特征的物体的抽象。
在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示:
在这里插入图片描述
类的属性的完整表示方式:
可见性 名称 :类型 [ = 缺省值]
中括号中的内容表示是可选的
类的方法的完整表示方式:
可见性 名称(参数列表) [ : 返回类型]
中括号中的内容是可选的。
在这里插入图片描述
3.接口(Interface)
接口是一种特殊的类,具有类的结构但不可被实例化,只
可以被实现(继承)。
C++中,通过类实现面向对象的编程,在基类中只给出纯虚函数(接口)的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同,从而实现多态。java中,在抽象类定义抽象函数(接口),抽象函数不能有函数体,抽象类不能被实例化,由其子类实现抽象函 数(接口),不同子类实现接口的方式可以不同,从而实现多态。
接口表示常用普通接口表示法:
在这里插入图片描述

类与类之间的关系

常见有以下几种关系:
依赖(Dependency)
关联 (Association)
继承 (Inheritance)
实现 (Realization)
聚合 (Aggregation)
组合 (Composition)
在这里插入图片描述

  1. 依赖
    只要是在类中用到了对方,那么他们之间就存在依赖关系。
    如果A类用到了B类 ,则A依赖于B, 没有B,A编译也不通过。
    在这里插入图片描述
    2.关联
    关联关系实际上就是类与类之间的联系,是依赖关系的特例。
    关联具有导航性:即双向关系或单向关系
    关系具有多重性
  • 单向一对一关系
    一个人一个身份证号 一对一单向的 一对一
    public class Person { private IDCard card;}
    public class IDCard{}
    在这里插入图片描述
  • 双向一对一关系
    一个人对应一个身份证号 一对一
    一个身份证号也对应一个人
    public class Person { private IDCard card;}
    public class IDCard{ private Person person; }
    在这里插入图片描述
    3.继承关系
    继承关系也称泛化关系,是依赖关系的特例。 A类继承了B类也相当于A类用到了B类。空心三角形+实线
    在这里插入图片描述
    4.实现关系
    实现关系实际上就是A类实现B接口,是依赖关系的特例,依赖关系更强。空心三角形+虚线
    在这里插入图片描述
    5.聚合关系
    聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。使用带空心菱形的实线,菱形指向整体来表示。如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成。
    在这里插入图片描述
    6.组合关系
    组合关系:也是整体与部分的关系,但是整体与部分不可以分开。实心菱形+实线
    定义类:Person、IDCard与Head, 那么
    Head 和Person 是 组合——人不能没有头。
    IDCard 和 Person 是聚合——一个人可以没有身份证,去补办身份证就行。
    如果在程序中Person类中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard 和 Person 就是
    组合了
    在这里插入图片描述

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值