C++中类之间的关系
摘要:
本文讲解面向对象C++程序设计中类之间的关系。并用UML类图描述这些关系。
关键词:
面向对象 类 对象 C++ UML
适用对象
对C++有一定基础的初级同学
面向对象编程的核心:类
面向对象的思想下编程过程可以减化为:
1. 识别和发现备选对象
2. 给对象分配职责
3. 确定对象之间的关系
下面列出一些术语,如果同学位对这些术语还不太了解,那么请要求我给大家作补充说明。
编号 | 术语 | 原文 |
1 | 类 | Class |
2 | 对象 | Object |
3 | 实例 | Instance |
4 | 属性 | attribute |
5 | 操作(成员函数) | operation |
6 | 关系 | relationship |
7 | UML | Unified Modeling Language |
8 | 类图 | Class diagram |
类之间的关系
关系1: 没有关系
两个对象之间如果没有关系,那么它们是孤立的。
关系2: 关联关系 (Association)
A和B之间是关联关系;
C与自己关联
关系3:有方向的关联关系 (DirectedAssociation)
关联还可以有方向性的。如下图
这种关系是关联关系的一种。
关系4: 聚合关系(Aggregate)
聚合关系也是关联关系的一种,这种关系能确定两个类之间的部分或整体关系。
关系5: 组合关系(composite)
组合关系也是一种部分和整体之间的关系。您能区分组合与聚合的区别吗?这个问题当作业来讨论吧。
关系6:泛化关系(Generalization)
泛化关系就是常见的继承关系。Student.csdn.net社区中的用户可以模型化为上图。
关系7:依赖关系(Dependency)
比如用户有一个登录的操作,用户密码在数据库在以MD5的形式存放,登录操作要用MD5类提供的decode()方法进行明码到密码的转换。
关系8:实现(Realization)
关系9:参数化关系(Parameter)
这种关系UML中还没有定义,我暂时为它命名这Parameter关系吧。
作业:
1. 说说聚合与组合关系的差别。
2. 尝试用C++代码代码描述上述关系。