Class Builder 与全局类 (★★★)
#abap-objects #global-class #class-builder
概览表
| 项目 |
关键点 |
| Class Builder |
SAP GUI 中创建和维护全局类/接口的工具 |
| 全局类 |
Repository对象,有版本管理、传输系统 |
| 全局接口 |
Repository中的接口,可被任何程序使用 |
| Object Navigator |
集成开发环境,包含Class Builder |
局部类 vs 全局类
| 特性 |
局部类 |
全局类 |
| 定义位置 |
程序内部 |
Repository 中的独立对象 |
| 可见性 |
仅在定义的程序中 |
所有程序都可使用 |
| 命名空间 |
自由命名 |
Y*/Z* 或客户命名空间 |
| 工具 |
代码编辑器 |
Class Builder (SE24/SE80) |
| 版本管理 |
无 |
有 |
| 传输 |
随程序传输 |
独立传输 |
Class Builder 的主要功能
通过 SE80 (Object Navigator) 或 SE24 (Class Builder) 访问:
| 标签页 |
功能 |
| Properties |
类属性(类型、最终/抽象等) |
| Attributes |
定义属性 |
| Methods |
定义方法及签名 |
| Events |
定义事件 |
| Types |
定义公有/私有类型 |
| Friends |
定义友元关系 |
| Interfaces |
实现的接口 |
创建全局类
步骤
- 在 Object Navigator 中选择包(Package)
- 右键 → Create → Class
- 填写名称(Z*/Y*开头)和描述
- 选择属性(最终类、抽象类等)
- 在各标签页定义组件
方法定义流程
- Methods 标签 → 输入方法名、级别、可见性
- Parameters 按钮 → 定义签名(IMPORTING/EXPORTING/RETURNING等)
- Source Code 按钮 → 编写实现
全局接口
1 2 3 4 5
| " 全局接口在 Class Builder 中创建 " 命名: ZIF_<name> 或 YIF_<name>
" 使用: DATA: lo_ref TYPE REF TO zif_partner.
|
从局部类迁移到全局类
迁移过程
- 在 Class Builder 中创建新的全局类
- 将局部类的定义复制到全局类(使用Class Builder界面)
- 将局部类的实现复制到全局类
- 调整程序中的引用(局部类名 → 全局类名)
- 使用 Refactoring Assistant 辅助重构
Refactoring Assistant
- 可以将局部类的组件移动到全局类
- 可以将方法定义移动到接口
- 自动调整引用关系
测试全局类
Class Builder 内置测试功能:
- 创建测试类 (Test Classes)
- 使用 ABAP Unit 框架
- 直接执行方法进行快速测试
考试/测试模式
| 场景/关键词 |
答案 |
| “全局类命名规则” |
Y* 或 Z* 开头 |
| “Class Builder在哪个事务码” |
SE24 或 SE80 |
| “局部类 vs 全局类” |
局部类只在程序内可见,全局类是Repository对象 |
| “Refactoring Assistant” |
辅助将局部类迁移到全局类或接口 |