zoukankan      html  css  js  c++  java
  • 类与类之间的关系2

    1.关联关系
    当一个类的对象作为另一个类的对象的成员时,那么这两个类之间就有了关联关系.
    C#代码如下:  

    ///


    /// 关联关系
    ///
    public class 老公
    {
        private 老婆 老婆;
    }

    public class 老婆
    {
    }

    uml图如下:

     

    2.关联关系中的多重性 
     是指类A的一个实例对应类B的实例的个数
    C#代码如下:

    ///


    /// 关联关系中的多重性
    ///
    public class 狗
    {
        private 腿[] 腿 = new 腿[4];  //这里值得商榷,狗与腿应该是组合的关系,因为狗没了,腿也没了,可以换成狗和多袋狗食 added              by  zhangjun at  2011-03-30
    }

    public class 腿
    {
    }

    uml图如下:

    关联关系中的多重性

     


    3.关联关系中的方向性
    在一个大公司里,公司的总裁只认识那些核心职员,不能认识所有的普通职员,而所有的职员都认识总裁.
    C#代码如下

    ///


    /// 关联关系中的方向性
    ///
    public class 大公司总裁
    {
        private 核心职员 核心职员;
    }

    public class 核心职员
    {
        private 大公司总裁 大公司总裁;
    }

    public class 普通职员
    {
        private 大公司总裁 大公司总裁;
    }

    uml图如下:

     关联关系中的方向性

    4.聚合关系
    是关联关系的特例,表示两个类的实例之间有整体与部分的关系,处于空心一端是整体,另一端为部分.聚合关系并不隐含整体消失而导致部分也消失.
    如公司倒闭了,但做为职员的人还在,不会随之灭亡.
    C#代码如下:

    ///


    /// 聚合关系
    ///
    public class 公司
    {
        private 职员 职员;
    }

    public class 职员
    {
    }

    uml图如下:

     聚合关系

    5.组合关系
    是聚合关系的一个特例,在聚合关系含义的基础上,增加了整体与部分之间"皮之不存,毛将焉附"的语义.实心的菱形表示整体,另一端表示部分.
    C#代码如下:

    ///


    /// 组合关系
    ///
    public class 树
    {
        private 树叶 树叶;
    }

    public class 树叶
    {
    }

    uml图如下:

     

    6.依赖关系
    相对于关联关系, 依赖关系是一种比较弱的关系,被"依赖者"的变化有可能影响"依赖者".
    C#代码如下:

    ///


    /// 依赖关系
    ///
    public class 人类
    {
        private 粮食 粮食;
    }

    public class 粮食
    {
    }

    uml图如下:

     

    7.继承关系
    类A是类B的一种,如下列代码小学生或大学生都是学生,在C#中用关键字abstract声明.
    C#代码如下:

    ///


    /// 继承关系
    ///
    public abstract class 学生
    {
        public abstract void 学习();
    }

    public class 小学生 : 学生
    {
        public override void 学习()
        {
        }
    }

    public class 大学生 : 学生
    {
        public override void 学习()
        {
        }
    }

    uml图如下:

     

    8.实现关系
    一方作为要求提出来,另一方具体完成这个要求.在C#中用关键字interface声明.如下列代码,去公园散步我可以步行或乘车去,都可以实现.
    C#代码如下

    ///


    /// 实现关系
    ///
    public interface 去公园
    {
        void 散步();
    }

    public class 步行 : 去公园
    {
        public void 散步()
        {
        }
    }

    public class 乘车 : 去公园
    {
        public void 散步()
        {
        }
    }

    uml图如下:

    实现关系

  • 相关阅读:
    Android:android sdk源码中怎么没有httpclient的源码了
    Android:ADB server didn't ACK或者adb server is out of date. killing解决办法
    [GitHub]第八讲:GitHub Pages
    [GitHub]第七讲:GitHub issues
    [GitHub]第六讲:开源项目贡献流程
    php反射类 ReflectionClass
    排名前 8 的 PHP 调试工具,你认可吗?
    如何调试PHP程序
    eclipse 快速建立PHP调试环境
    HTML 列表元素OL、UL、LI
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1731935.html
Copyright © 2011-2022 走看看