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();
    }
}
相关推荐
2401_868534784 天前
UML建模与面向对象分析
uml
rolt6 天前
PlantUML+EA描述《分析模式》第6章存货和会计(5)
架构师·uml·plantuml
Warren2Lynch6 天前
掌握 UML 构造型、标记定义与标记值:面向领域特定建模的 UML 扩展全面指南
大数据·算法·uml
rolt8 天前
PlantUML+EA描述《分析模式》第6章存货和会计(7)
软件工程·架构师·uml
rolt10 天前
PlantUML+EA描述《分析模式》第6章存货和会计(6)
架构师·uml·plantuml
耶耶耶耶耶~13 天前
UML简介
uml
m0_5474866620 天前
《面向对象分析设计与建模》全套PPT课件
人工智能·数据挖掘·uml
折哥的程序人生 · 物流技术专研25 天前
第2篇:模板方法模式核心:好莱坞原则
设计模式·uml·模板方法模式·行为型模式·钩子方法·扩充系列·好莱坞原则
折哥的程序人生 · 物流技术专研25 天前
第2篇:策略模式三大角色拆解与UML
java·设计模式·策略模式·uml·编程入门·行为型模式·扩充系列
rolt2 个月前
[pdf]406页《分析模式》漫谈文集202606更新
ddd·架构师·uml·领域驱动设计