面向对象设计主要就是使用UML的类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。下面基于C++这门语言给大家讲一下UML类图的画法。
类的UML画法
类(class / struct)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样子的功能,要承担什么样子的义务。一个类可以有多种职责,但是设计得好的类一般只有一种职责。比如,我现在定义了猎人类:
class Hunter
{
public:
int m_age = 32;
static int m_times;
string getName()
{
return m_name;
}
void setName(string name)
{
m_name = name;
}
void goHunting()
{
aiming();
shoot();
}
static void saySorry()
{
string count = to_string(m_times);
cout << "Say sorry to every animal " + count + " times!" << endl;
}
protected:
string m_name = "Jack";
void aiming()
{
cout << "使用" + m_gunName + "瞄准猎物..." << endl;
}
private:
string m_gunName = "AK-47";
void shoot()
{
cout << "使用" + m_gunName + "射击猎物..." << endl;
}
};
int Hunter::m_times = 3;
上面这个类对应的类图应该是这样的:
可以看到该图分为上中下三部分:上层是类名,中间层是属性(类的成员变量),下层是方法(类的成员函数)。
可见性:+ 表示public、# 表示protected、- 表示private、__(下划线)表示static
属性的表示方式:【可见性】【属性名称】:【类型】= { 缺省值,可选 }
方法的表示方式:【可见性】【方法名称】(【参数名 : 参数类型,……】):【返回值类型】
如果我们定义的类是一个抽象类(