UML---类图

来源:互联网 发布:信息技术教学的软件 编辑:程序博客网 时间:2024/06/05 05:58

1.什么是类

    类是面向对象程序设计实现信息封装的基础,是对真实客观世界中客观存在的事物的抽象的描述。


2.类的表示

用一个分成三部分的矩形来表示
第一部分:类的名字
第二部分:类的属性
第三部分:类的方法
抽象为三个层次:
              概念层
              说明层
              实现层

举例:


3.类图的概念

用于定义系统中的类,包括描述类的内部结构和类之间的关系,类图主要用于描述系统的静态结构。


4.类图的关系
4.1关联
    关联是类之间的关系,表示有意义的和值得关注的连接。
    关联通常是双向的,表明关联的双方彼此能够互相通信,彼此都能够感知到另一方的存在。         
    单向/导航关联(单向箭头),双向关联(双向箭头或不加箭头),自身关联(一个对象可以与另一个同类的对象有连接,即类可以与自身有关联)。
    两个类之间可以有多种关联,一个类可以和多个类关联。
 
4.1.1普通关联
表示:用直线表示
修饰:
  关联名称:用以描述该关系的性质
  关联角色:当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色;角色是关联中靠近它的一端的类对另外端类呈现的职责
   多重性:一个关联的实例中有多少个相互连接的对象,描述两个相互作用的类之间的对应个数的关系,即类与类之间是一对一的关系,一对多的关系还是多对多的关系
 
举例(图片源自网络):

  
  
4.1.2 聚合:整体/部分关系,空心菱形指向整体,没有严格的时间约束,例火车和发动机,火车里必须有发动机,但是发动机不一定属于这个火车,发动机可以单独存在   
 
4.1.3 组合:整体/部分关系,实心菱形指向整体,没有明显的附属关系,例链表和节点,一个节点只属于一个链表,一个链表可包含0个或多个结点,节点不能脱离链表而存在
          
 总结:先有整体,再有个体,用组合
       整体不存在,可以有个体,用聚合
       整体不存在,个体也不存在,用组合
 
4.2依赖
定义:表达一种使用关系,一个事物规格说明的变化可能影响到使用它的另一个事物,反之未必。
表示:用带箭头的虚线表示
使用:类A依赖类B,类A的方法里需要用到类B时,声明为类A依赖类B,箭头指向被依赖的一方
 
4.3泛化(is a kind of)
定义:描述类和类之间的继承关系
表示:子类和父类之间用空心三角表示,子类指向被继承的父类
继承分类:
    单重继承:有且只有一个父类
    多重继承:一个类有两个或两个以上的父类
 
4.4实现
定义:是实现类元之间的语义关系
 
类图关系总结:
能用关联表达的就不用依赖
能用聚合和组合来表达的就不用普通关联
能用继承描述就一定用泛化关系
当描述是类与接口实现关系的时候一定用实现
另个类之间有结构联系的时候一定用关联
除此之外用依赖
 
不能只用依赖关系
能用关联用关联
能用组合用组合
能用组合就不用聚合
能用聚合就不用一般关联
能用一般关联就不用依赖
该用接口实现就用接口实现
需要继承就用继承
任何关系都可以用依赖,但我们要用最准确的关系描述两个类之间的相互作用关系
 
5.类图的构成
类图的作用是用来描述系统的静态部分
类图的构成:
    Classes类
    Interfaces接口
    Collaborations协作
    Dependency,Generalization and Association relationships依赖关系、泛化关系、关联关系
    Packages or Subsystems(for grouping)包或者子系统

6.类图深入讨论
6.1可见性
    public公有
    private私有
    protected保护
 
6.2范围
定义:每个实例自己拥有自己的属性和方法
静态成员:对一个类的所有实例共享一个成员,在成员下面加上一条下划线表明该成员是静态成员
6.3属性


6.4操作


6.5模板类
6.6使用类
 
7.举例
下图是我根据学到的知识对机房收费系统画出的类图,不足之处望大家多提宝贵意见!





原创粉丝点击