理清类图,辨识UML
2024-01-10 14:18:16
类图
public 用 + 表示
protected 用 # 表示
private 用 - 表示
class Person
{
public:
void setName(std::string name) {
this->name = name;
}
std::string getName() {
return this->name;
}
public:
int nationality;//国籍
protected:
int idCard;//身份证号
private:
std::string name;//姓名
};
类图关系
关联
class QQZone
{
};
class QQNumber
{
QQZone zone;
};
双向关联
class Water;
class Climate
{
Water* m_water;
};
class Water
{
Climate* m_climate;
};
组合
class Wings {};
class Goose
{
public:
Goose() {
m_wings = new Wings;//组合关系
}
private:
Wings* m_wings;
};
聚合
class Wings {};
class Goose
{
public:
Goose(Wings* pWings):m_wings(pWings){//聚合关系
}
private:
Wings* m_wings;
};
依赖
1、Water作为Animal类某个方法中的局部变量
2、Water作为全局类,Animal直接调用Water类
3、Water类作为Animal类某个方法中参数或者返回值
class Water
{
};
class Animal
{
void Drink()
{
//注意:持有Water类的是Drink方法,而不是Animal类。Drink被调用时Water类才被实例化
//2、 的例子
Water *water = new Water;
}
};
继承
class Car
{
};
class Jeep: public Car
{
};
实现接口
class Interface_A {
public:
virtual void test() = 0;
};
class Class_A
{
public:
void test() {
}
};
文章来源:https://blog.csdn.net/YHB123___ahnd/article/details/135495648
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!