The Semantics of Data: Data语义学 深入探索C++对象模型

          类图是描述类,接口,协作以及它们之间关系的图,用来显示系统中各个类的静态结构。而类是类图的基本组成元素(其他的还有:Interfaces,collaborations,dependency,generalizationand association relationships,packages of subsystems)之一,可以说是类图非常基础的东西。

一,类的构成

  The Semantics of Data: Data语义学 深入探索C++对象模型

     类由3部分构成,类名,属性,和操作。如图,很熟悉的command,以前大家都叫它控件,但是如果到了面向对象的程序设计里面,我们就应该叫它class了。

       在这个类图中,类名为:command

                             属性为:caption,width,height,name(protected)

                                              方法为:click,doubleclick,lostfocus,getfocus,keypress.

   在这里,我只写了一些常用属性和方法,但是在我们自己设计时,就不能这么简略了。



二,类图的关系


The Semantics of Data: Data语义学 深入探索C++对象模型


         1,普通关联

    

The Semantics of Data: Data语义学 深入探索C++对象模型


  其中,关联有3中修饰:名称,角色,多重性。

  在上图中,“工作于”是关联的名称,教师在关联中扮演的角色时雇员,学校扮演的角色是雇佣者,多重性即两个类存在的相互连接的数目,如图,为1.


      2,聚合关联和组合关联

          这两个关联很像,聚合关联是一种“has-a”的关系,聚合中没有严格的制约关系,一方不存在,令一方还可以存在;而组合关联部分和整体有一种附属关系,非常明显如图:

  

  The Semantics of Data: Data语义学 深入探索C++对象模型


The Semantics of Data: Data语义学 深入探索C++对象模型



  3,依赖关系

   The Semantics of Data: Data语义学 深入探索C++对象模型

  在依赖关系中,依赖双方某一个模型元素的变换必然影响到另个模型元素。如图,如果频道突然没信号,电视机也无法收到台。


   4,泛化关系

The Semantics of Data: Data语义学 深入探索C++对象模型


   

   泛化描述类与类之间的继承关系,这是一种“is-a-kind of”的关系。如图,鸟和猫都从动物那里继承了动物的一部分东西,它们都是一种动物。



  5,实现关系

      The Semantics of Data: Data语义学 深入探索C++对象模型


  实现是规格说明和其实现间的关系。但是它不继承结构而只继承行为。



三,类图的深入讨论

  1,可见性

       主要是访问权限的问题。

The Semantics of Data: Data语义学 深入探索C++对象模型

其中各个访问权限对于符号如图。

 

2,范围

 

  每个实例自己拥有自己的属性和方法。

  对于类中的静态成员来说:所有实例共享一个成员。

      静态成员用途:

1,可以起一个计数器的作用

2,通过类名来调用方法:mathpack.sin通过静态成员可以实现调用库函数



3,抽象类不能实例化

     抽象的类只是在概念上存在,这样的类,但是在使用时,可以让其他类继承抽象类的操作。


4,属性和操作的语法

     属性语法:

         [可见性] 属性名 [:类型] [=初始值] [{属性字符串}]


   操作语法:

       [可见性] 属性名 [(参数表)] [:返回类型] [{属性字符串}]


      


  















The Semantics of Data: Data语义学 深入探索C++对象模型

上一篇:mysql数据库基础(一)


下一篇:Python快速入门(1)简介、函数、字符串