UML类图(泛化, 实现,关联,聚合,组合,依赖)及代码实现

1.基本属性概述

类图基本框架

class_name
[data]variate_name : type
[method]method_name() : return_type

基础属性
以Student类为例
在这里插入图片描述

+ 表示public可以省略
- 表示private
# 表示protected
_ 下划线表示static
斜体表示抽象

代码体现

class Student{
    public:
        string name;
        static string school;
        void running();
        bool ownPC();
        virtual void study() =0;//抽象方法
    protected:
        double height;
    private:
        int age;
};

2.类与类之间的关系用类图表示

类与类的关系有: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
在这里插入图片描述

泛化

类与类的继承, 接口与接口的继承
1,继承
继承使用空心三角形+实线表示。
在这里插入图片描述

class animal{
  public:
};
class bird:public animal{
};

实现

矩形表示法
使用空心三角形+虚线
在这里插入图片描述

棒棒糖表示法
使用实线表示
在这里插入图片描述

依赖

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
依赖关系用虚线箭头表示。
在这里插入图片描述

依赖关系的代码体现有三种

在这里插入图片描述

class Person{
    public:
        Person();
};
class Computer{
    public:
        Computer();
};

1,Computer类是public的, Person类可以调用它
2,Computer类是Person类中某个方法的局部变量

class Person{
    public:
        Person();
        void Programing(){
            Computer computer = new Computer();
        }
};

3,Computer类作为Person类中的某个方法的参数或者返回值

class Person{
    public:
        Person();
        Computer Programing(Computer computer){
            ...
        }
};

关联

两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系
关联关系用实线箭头表示。
在这里插入图片描述

class penguin{
    weather *cold;//特定的实例 
};
class weather{
};

聚合

表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期
聚合关系用空心的菱形+实线箭头表示。

在这里插入图片描述

class GooseGroup{
  public:
      Goose *goose;
      GooseGroup(Goose *goose){
          this->goose = goose;
      }  
};
class Goose{ 
};
GooseGroup类构造时,传递的参数是已经构造好的Goose类的指针,
所以两者的生命周期并不同步,它们是聚合关系。

组合

组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。

在这里插入图片描述

class bird{
    Wings wing[2];
};
class Wings{
};
  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值