UML 类图

元素

可见性符号

符号 含义
+ public
- private
# protected
~ 默认

字段

类型 表示法 示例
普通字段 可见性 名称 : 类型 - id : int
属性 可见性 名称 : 类型 {get set} + Name : string {get set}
静态字段 使用下划线 - ++value : float++
常量 可见性 名称 : 类型 = 值 {readOnly} + PI : double = 3.14 {readOnly}

方法

静态方法:加下划线

抽象方法:用斜体字表示

构造函数:与类型相同,不加返回类型

cs 复制代码
    public abstract class Animal
    {
        //构造函数
        public Animal(string type)
        {


        }

        //普通方法
        public void SayHi(string type)
        {

            Console.WriteLine("动物叫");
        }

        //抽象方法
        public abstract void Eat();

        //静态方法
        public static bool Check(string type)
        {
            return true;
        }
    }

接口

加<<interface>>标识

抽象类

方法一:类名不是斜体,但是加<<abstract>>标识。

方法二:类名斜体。

关系

详情请看此篇文章 :UML 关系详解-CSDN博客

枚举

使用<<enumeration>>标注

案例

cs 复制代码
//动物类型
public enum AnimalType
{
    Carnivores,//食肉动物
    Herbivore,//食草动物
    Omnivore,//杂食动物
}

public abstract class Animal
{
    public AnimalType animalType;
    public string Name { get; set; }
    public static float value;
    //构造函数
    public Animal()
    {


    }

    //普通方法
    public void Speak(string type)
    {
        Console.WriteLine("动物叫");
    }

    //抽象方法
    public abstract void Eat();

    //静态方法
    public static bool Check(string type)
    {
        return true;
    }
}

//老虎
public class Tiger:Animal
{
    public Tiger() : base()
    {
        animalType = AnimalType.Carnivores;
        Name = "老虎";
    }

    public override void Eat()
    {
        Console.WriteLine("吃肉!");
    }
}


//羊
public class Sheep:Animal
{
    public Sheep() : base()
    {
        animalType = AnimalType.Herbivore;
        Name = "羊";
    }

    public override void Eat()
    {
        Console.WriteLine("吃草!");
    }
}

//狗
public class Dog:Animal
{
    public Dog() : base()
    {
        animalType = AnimalType.Omnivore;
        Name = "狗";
    }

    public override void Eat()
    {
        Console.WriteLine("啥都吃!");
    }
}

public class Keeper
{
    public string Name { get; private set; }
    public Keeper(string _name)
    {
        Name = _name;
    }
    
    public void GetAnimal(Animal animal)
    {
        Console.WriteLine($"动物是:{animal.Name}");
    }
    
    public void KeepAnimal(Animal animal)
    {
        animal.Eat();
    }
}
相关推荐
Wyc7240913 小时前
UML建模
uml·个人学习
rolt1 天前
[答疑]把缺省伪状态和历史伪状态合并可行吗
软件工程·架构师·uml
程序猿多布1 天前
UML 关系详解
uml
疯狂打码的少年9 天前
UML类图究竟是什么?—— 软件开发中的“建筑蓝图”
uml
rolt9 天前
[幻灯片]分析设计高阶-02结构(2)-202604更新
ddd·架构师·uml·ooad
a里啊里啊11 天前
软考-软件评测师:知识点整理(七)——软件工程
设计模式·软件工程·软考·uml·结构化开发·软件评测师·软件模型
Warren2Lynch12 天前
[特殊字符]️ 综合指南:结合使用 C4 模型与 UML
uml·c4
Ting.~13 天前
软件设计师备考笔记【day2】-UML 图解 | 面向对象 | 设计模式
笔记·设计模式·uml
清钟沁桐15 天前
编程设计之三 -- UML
uml