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();
    }
}
相关推荐
rolt9 天前
[pdf]406页《分析模式》漫谈文集202606更新
ddd·架构师·uml·领域驱动设计
rolt10 天前
EA17.1和PlantUML操作 -202606更新《软件方法》第3章
产品经理·架构师·uml
小bo波12 天前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+
lsyeei12 天前
UML 状态机图
软件工程·uml
Warren2Lynch12 天前
破局“伪敏捷”:UML诊断视角下的微服务转型与架构重构——以EcoStream为例
微服务·架构·uml
rolt12 天前
[pdf]《软件方法》全流程引领AI-电子书共560页202606更新
产品经理·架构师·uml
rolt12 天前
[pdf、epub]370道《软件方法》强化自测题业务建模需求分析共310页(202606更新)
产品经理·架构师·uml
lipengxs13 天前
PlantUML、Mermaid、SQL ER、OpenAPI 在线预览工具整理
ai·编辑器·流程图·uml
lsyeei15 天前
UML建模在软件生命周期中的应用
软件工程·uml
艾利克斯冰17 天前
Java设计模式详解-七大设计原则(持续更新中)
设计模式·uml·开闭原则