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();
    }
}
相关推荐
rolt21 小时前
[存档]Alistair Cockburn-2003年11月UMLChina交流会
软件工程·产品经理·uml·敏捷开发·用例·cockburn
rolt1 天前
[鉴赏]摇身一变鼓吹软件工程-01-Allen Holub
ai·软件工程·uml·敏捷开发
rolt14 天前
[重写]《软件方法》全流程引领AI第1章-1.3为什么要使用标准建模语言(202610更新)
软件工程·产品经理·架构师·uml·本体·fde
带金箍的至尊宝14 天前
系统架构设计师笔记 08:UML 用例图、类图、时序图
笔记·系统架构·uml
rolt15 天前
向窃·格瓦拉学习本体建模基础知识-第7赛季第22轮
软件工程·uml·面向对象·数理逻辑
抓到一只狗17 天前
系统分析师——统一建模语言
软件工程·uml·类图·用例图·系统分析师·顺序图·高级软考
rolt22 天前
智能机床-06 机械 ISO 23704-4-2026-用UML表示的行业标准
软件工程·产品经理·架构师·uml
rolt24 天前
05 医学 ISO 13940-用UML表示的行业标准,健康信息学 — 支持照护连续性的概念体系
软件工程·架构师·uml
rolt25 天前
3GPP-5G-用UML表示的行业标准-04电信移动通信
软件工程·ddd·uml·ontology
Warren2Lynch1 个月前
掌握 UML 用例建模:地图与路线的完美结合
uml