栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

uml类图浅录

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

uml类图浅录

uml类图
  • UML中类图的绘制
    • 单个类图的绘制
    • 类图中的成员访问属性
  • UML类图中类与类的几种关系
    • 关联
      • 代码示例解释
      • UML类图表示
      • 多重性说明
    • 依赖
      • 代码示例解释
      • uml类图表示
    • 继承
      • 示例代码解释
      • UML类图表示
    • 实现
      • 示例代码解释
      • UML类图表示
    • 聚合
      • 示例代码
      • UML类图表示
    • 组合
      • 示例代码解释
      • UML类图表示
  • 绘制UML类图示例
    • 示例一
    • 示例二
    • 示例三

UML中类图的绘制

UML中类图包含类名,属性,方法,访问权限,类与类之间的关系。

单个类图的绘制

若下面代码:

class Person{
public:
    void work(){...}
private:
	string m_name;
	int m_age;
};

则其UML类图表示:

类图中的成员访问属性
符号访问属性
-私有访问
+共有访问
#保护访问
~package或default
UML类图中类与类的几种关系

下面介绍uml中类与类之间的6种关系。

关联

一个类类型对象作为另一个类的属性。其可以分为单向关联,双向关联,重数关联。单向关联指一个类类型的对象作为另一个类的属性。双向关联是指两个类互相作为对方类的属性。重数关联是指一个类类型的多个对象做为另一个类的属性。

代码示例解释

下面是单向关联示例代码:

class Test{.....};
class Demo{
 Test m_test;
 ....
};

双向关联示例代码:

class Demo;

class Test{
Demo m_demo;
.....
};
class Demo{
 Test m_test;
 ....
};

重数关联示例代码:

class Test{
.....
};
class Demo{
 Test m_test;
 Test m_test1;
 Test m_test2;
 ....
};
UML类图表示

多重性说明
文本代表含义
1.1一个类对象只与该类一个对象有关系
1…*一个类对象与该类多个对象有关系
0…*一个类对象与该类有0个或者多个对象有关系
0…1一个类对象与该类有0个或者1个对象有关系
m…n一个类对象与该类至少m,至多n个对象有关系
依赖

一个类类型的对象作为另一个类的成员函数的参数传入。

代码示例解释
class Test{....};

class Demo{
	void SetTest(Test & test){...}
};
uml类图表示

继承

又叫泛化,同C++中的继承是一个意思。

示例代码解释
class Base{....};
class Demo:public Basse
{
....
};
UML类图表示

实现

抽象类中的函数的实现,即类中接口函数在另一个类中被实现,一般父类为抽象类。

示例代码解释
class Base{
virtual void paly() = 0;
virtual void eat() = 0;
};

class Herio:public Base{
	void play(){...}
	void eat(){...}
};
UML类图表示

聚合

整体与部分的关系,部分与整体脱离后可以独立存在。

示例代码

省,这里只需理解其两个类对象可以独立存在,但是一个类对象又是另一个类的一部分。

class Hair{
....
};

class People{
private:
static Hair m_hair;
};
UML类图表示

组合

整体与部分的关系,整体与部分之间有相同的生命周期,两者同生共死。

示例代码解释
class Battery;

class ElectricCar{
Battery m_battery;
...};

class Battery{...};
UML类图表示

绘制UML类图示例

下面是几个小例子,来理解uml绘图类图。

示例一


此图讲述运动员类,衣服类,与球类的关系。运动员类中含有衣服类的成员变量。故而关系为关联,运动员类的成员函数使用球类的对象做函数的参数,故而与球类之间是依赖关系。

示例二


桌子是房子的组成部分,房子没有了桌子依旧可以存在,桌子没有了房子还是房子。故而桌子类与房子类之间是一种聚合关系。而房子与房子的墙壁是一种同生共死的关系,房子没有了,房子的墙壁自然就不存在了,为组合关系。

示例三


动物类是一个抽象类,哺乳动物类实现了动物类中的setName()与setAge()函数,可以看作是实现,但是我觉得应该也是继承。猴子类与马类继承了哺乳动物类,身体类作为猴子类和马类的一部分,当猴子类与马类不存在时身体类也就不存在,故而时一种组合关系,毛发类作为马类的一部分,当马类结束生命,毛发类依旧可以单独生存,为聚合关系。
以上若是存在理解不到位的地方,望指出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011532.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号