类:用矩形框表示(类图分三层)

      第一层显示类的名称;(如果是抽象类,就用斜体显示)

      第二层是类的特性,通常就是字段和属性;

      第三层是类的操作,通常是方法或行为。

      (注意前面的符号,“+” 表示 public,“-” 表示 private,“#” 表示 protected)

   接口:(接口有两种表示方法)

      方法一:矩形表示法(矩形表示法与类图的区别主要是顶端有《interface》显示)

         顶端有《interface》

         第一行:接口名称

         第二行:接口方法

      方法二:棒棒糖表示法(小圆圈加一竖线)

         圆圈旁为接口名称

         接口方法在实现类中出现(这样好像看不出来类里面的哪些方法是继承自接口的)

   接下来就可以讲类与类,类与接口之间的关系了:

      继承关系:

          继承关系用空心三角形 + 实线来表示;(从子类指向父类)

            class Bird : Animal
            {

            }

      类实现接口:

          空心三角形 + 虚线(从类指向接口)

            class WideGoose : IFly
            {

            }

      关联关系:(在一个类中引用到了另一个类的对象,换句话说就是,以被引用类的对象作为一个字段或属性 -- 这里是一种“需要知道”的关系,而不像合成关系中有初始化与实例化的限制)

          关联关系用实线箭头来表示;  (指向字段或属性类)

            class Penguin : Bird
            {
                private Climate climate;        //关联关系体现在:在企鹅 Penguin类中,引用到气候 Climate对象
            }

      聚合关系:一种弱的“拥有”关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分(如:在“雁群”类中有“大雁”数组对象

          聚合关系用空心的菱形 + 实线箭头来表示;

            class WideGooseAggregate
            {
                private WideGoose[] arrayWideGoose;     //聚合关系体现在:在雁群类中,有大雁“数组对象”
            }

      合成关系:一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。(鸟和其翅膀就是合成关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的 —— 在“鸟”类中,初始化时需要实例化翅膀类)

          合成关系用实心的菱形 + 实线箭头来表示;(另外,合成关系的连线两端还有一个数字 “1” 和另外一个数字,这被称为基数,表明这一端的类可以有几个实例。如果一个类可能有无数个实例,就用“n”来表示)(聚合关系也可以有基数)

            class Bird
            {
                private Wing wing;
                public Bird()
                {
                    wing = new Wing();      //除了说字段中包含Wing类对象,初始化时还需要实例化翅膀Wing
                }
            }

      依赖关系:类的方法中需要以别的类的对象作为参数

          依赖关系用虚线箭头来表示。

            class Animal
            {
                public void MetaBolism(Oxygen yangqi,Water shui)
                {

                }
            }

    编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以真正得到提高。