一、抽象类:“只定规则,不干活”的类 📜

关键字:抽象类、抽象操作、不可实例化

🤔

抽象类是

不能直接创建对象的类

,它的作用是“定义公共规则”——里面可以有普通属性/操作,也可以有

抽象操作

(只有方法名,没有实现代码),这些抽象操作必须由子类来实现。

比如“图形类(Shape)”是抽象类,它定义了“draw()”这个抽象操作;“圆形(Circle)”“矩形(Rectangle)”作为子类,各自实现自己的draw逻辑(画圆、画矩形)。

📊 UML表示:

抽象类/抽象操作的名字用

斜体

表示,比如“Shape”类名是斜体,“draw()”操作名也是斜体。

二、模板类:“一版多用”的泛型类 🧩

关键字:模板类、参数化元素、泛型

🚀

模板类就是

“泛型类”

——它的属性、操作可以支持“任意类型”,通过“参数”来指定具体类型,实现“一套代码适配多种数据类型”。

💡 新手类比:

就像“万能收纳盒”——盒子(模板类)本身不指定装什么,用的时候可以说“这个盒子装书(String类型)”“那个盒子装笔(Integer类型)”,灵活适配不同物品。

📊 UML表示:

用“<>”构造型+“参数占位符”表示,比如“Array”(T是参数,代表任意类型)。实例化时,把T替换成具体类型,比如“Array”(装字符串的数组)。

🌰 课本例子:

“Array”模板类有“size:int”属性,实例化出“IArray(Integer类型)”“FloatArray(Float类型)”等,各自对应不同的数据类型。

三、关联类:给关联“加属性”的特殊类 📝

关键字:关联类、关联的属性

🤝

普通关联只能表示类之间的“连接”,但如果需要给

关联本身加属性

(比如“员工在公司的入职时间”),就要用关联类——它是“关联+类”的结合,既表示关系,又有自己的属性/操作。

📊 UML表示:

用“虚线+类”连接到关联路径上,比如“Company”和“Person”的关联,用“Employment”关联类表示,关联类里可以加“startDate:Date”(入职时间)这样的属性。

四、分析类:需求到设计的“过渡类” 🚧

关键字:分析类、实体类、边界类、控制类

🔄

分析类是

从“需求”到“设计”的过渡工具

,用来把用例中的业务逻辑转化为类结构,分为三种:

实体类(Entity Class)

:对应现实中的“事物”,负责存储数据,比如“学生(Student)”“订单(Order)”;

边界类(Boundary Class)

:负责“系统和外部的交互”,比如界面、接口,比如“登录界面(LoginUI)”;

控制类(Control Class)

:负责“业务逻辑的流程控制”,比如“订单处理(OrderProcess)”,协调实体类和边界类的交互。

💡 作用:

用分析类可以快速把“用例描述”转化为类结构,比如“提交订单”用例,对应“Order(实体类)”“OrderUI(边界类)”“OrderControl(控制类)”。

总结:高级概念让类图更“灵活强大” 🛠️

🎉

抽象类、模板类这些高级概念,是为了让类图能表达更复杂的业务逻辑——抽象类统一规则,模板类复用代码,分析类衔接需求和设计,让系统的类结构更合理、更易扩展~ 要不要我帮你整理一份

类的高级概念对照表

,方便你区分抽象类、模板类和分析类?