看懂UML类图的关键是建立“图—代码”双向映射习惯:三栏矩形(类名/属性/方法)对应Java结构,四类连线(继承、实现、关联、依赖)分别对应extends、implements、成员变量和临时引用等语法元素。

看懂 UML 类图,关键不是背符号,而是建立“图—代码”的双向映射习惯。它不是静态图纸,而是你 Java 项目结构的实时快照——类怎么写,图就怎么画;图上一有异常,代码里往往就有设计隐患。
先认全三块区域:类名、属性、方法
每个类在图中是一个三栏矩形:
- 顶部是类名:正体为普通类,斜体代表抽象类(如 Shape),带 «interface» 标签的是接口(如 «interface» Comparable)
-
中间是属性(Fields):格式为
+ name: String或- id: long = 0L。符号含义:+表示 public,-表示 private,#表示 protected;冒号后是类型,等号后是默认值(可选) -
底部是方法(Methods):格式为
+ getName(): String或# calculate(a: int, b: String): void。参数用名: 类型表示,返回类型写在最后
重点盯住四类连线:一眼识别代码关系
连线不是装饰,每一条都对应 Java 中的真实引用或语法结构:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
实线空心三角箭头(→):表示 继承(泛化),即
class Dog extends Animal,箭头指向父类 -
虚线空心三角箭头(⤳):表示 实现接口,即
class UserService implements UserRepo,箭头指向接口 -
实线(无箭头)或带数字/角色名的实线:表示 关联,常见于成员变量,如
private Order order;就会在图中连一条线到 Order 类 -
虚线+箭头(→):表示 依赖,比如方法参数、局部变量、返回值类型或方法内 new 出的对象,如
void send(Email email)或Email e = new Email();
从图反推代码:几个典型对照场景
遇到一张新类图,不妨按这几步快速还原出 Java 片段:
立即学习“Java免费学习笔记(深入)”;
- 看到
- balance: BigDecimal→ 对应字段private BigDecimal balance; - 看到
+ transfer(to: Account): boolean→ 对应方法public boolean transfer(Account to) { ... } - 看到 Customer 和 Address 之间有一条实线,Customer 端标着
1,Address 端标着0..*→ 对应class Customer { private List<Address> addresses; } - 看到 Service 类指向 Dao 类的虚线箭头 → 很可能该 Service 方法里用了 Dao 实例,但没声明为成员变量(属于临时依赖)
用 IDEA 自动生成图来验证理解
别只看图猜代码,动手生成才是闭环:
- 在 IntelliJ IDEA 中右键包或类 → Diagrams → Show Diagram → Class Diagram
- 勾选 Show Fields 和 Show Methods,确保信息完整
- 添加一个新字段或方法,观察图是否自动更新;删掉一个 import 或成员变量,看连线是否消失——这能帮你确认自己对关系的理解是否准确

















