zoukankan      html  css  js  c++  java
  • 面向对象程序设计中类与类的关系

    一、关联关系

    关联关系是类与类中较为常见的关系,其中又包含了以下六种子关联关系:

    (一)双向关系:默认情况下,关联是双向的,例如,顾客与商品、父母与子女。双向关联关系用实线表示。

    技术分享图片

    (二)单向关联关系

    表示一个类与另一个类单方面关联关系,例如居民拥有地址。单向关联用带箭头的实线表示。

    技术分享图片

    (三)自关联关系

    代表该类与自身有关联关系,一个节点类的成员又是节点对象。用指向该类的带箭头的实线表示。

    技术分享图片

    (四)多重性关联关系

    指一个类的对象与另一个类的对象有多重关系,常有一对多、多对一、一对一、多对多等关联关系。例如,一个界面有多个按钮。

    技术分享图片

    (五)聚合关系

    助记方法:“聚集”,类似物以类聚。因此关联性较低,即使某一部份不存在或者销毁,并不影响其他单元。因此,使用“空心菱形+箭头的实线”表示(空心可记为关联性低,不走心),箭头指向小的聚合个体。例如,汽车组装中的各个零件:

    技术分享图片

    (六)组合关系共六种关系。

    助记:“组成”,那就意味着缺一不可,关联性极高。因此使用“实心菱形+箭头的实线”表示(实心可记为关联性高,走心),例如头和嘴巴:

    技术分享图片

    二、依赖关系

    依赖关系(Dependency)是一种使用关系,大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。常用“箭头+虚线”表示,由依赖的一方指向被依赖的一方。例如,驾驶员开车,在Driver类中的drive()方法将利用Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,因此Driver类以来Car类。技术分享图片

    三、泛化关系

    泛化关系(Generalization)也称作继承关系,用于表示父类(也称基类或超类)与子类(也称派生类)之间的关系。用“实线+空心箭头”表示,例如Student与Teacher类均可继承自Person类。

    技术分享图片

    四、接口与实现关系

    在接口中,一般没有属性,并且所有的操作都是抽象表示的,即只有操作声明,没有操作的实现方法。实现方法由使用接口的类进行定义。例如,交通工具都会移动,故有move()方法,首先提出声明;但是轮船、汽车的move()方法又各不相同,因此根据他们的各自的特性再进行具体的定义(实现接口)。

    技术分享图片

  • 相关阅读:
    Digital Video Stabilization and Rolling Shutter Correction using Gyroscope 论文笔记
    Distortion-Free Wide-Angle Portraits on Camera Phones 论文笔记
    Panorama Stitching on Mobile
    Natural Image Stitching with the Global Similarity Prior 论文笔记 (三)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(二)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(一)
    ADCensus Stereo Matching 笔记
    Efficient Large-Scale Stereo Matching论文解析
    Setting up caffe on Ubuntu
    Kubernetes配置Secret访问Harbor私有镜像仓库
  • 原文地址:https://www.cnblogs.com/123456www/p/11573564.html
Copyright © 2011-2022 走看看