Class Builder 与全局类

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 实现的接口

创建全局类

步骤

  1. 在 Object Navigator 中选择包(Package)
  2. 右键 → Create → Class
  3. 填写名称(Z*/Y*开头)和描述
  4. 选择属性(最终类、抽象类等)
  5. 在各标签页定义组件

方法定义流程

  1. Methods 标签 → 输入方法名、级别、可见性
  2. Parameters 按钮 → 定义签名(IMPORTING/EXPORTING/RETURNING等)
  3. Source Code 按钮 → 编写实现

全局接口

1
2
3
4
5
" 全局接口在 Class Builder 中创建
" 命名: ZIF_<name> 或 YIF_<name>

" 使用:
DATA: lo_ref TYPE REF TO zif_partner.

从局部类迁移到全局类

迁移过程

  1. 在 Class Builder 中创建新的全局类
  2. 将局部类的定义复制到全局类(使用Class Builder界面)
  3. 将局部类的实现复制到全局类
  4. 调整程序中的引用(局部类名 → 全局类名)
  5. 使用 Refactoring Assistant 辅助重构

Refactoring Assistant

  • 可以将局部类的组件移动到全局类
  • 可以将方法定义移动到接口
  • 自动调整引用关系

测试全局类

Class Builder 内置测试功能:

  • 创建测试类 (Test Classes)
  • 使用 ABAP Unit 框架
  • 直接执行方法进行快速测试

考试/测试模式

场景/关键词 答案
“全局类命名规则” Y* 或 Z* 开头
“Class Builder在哪个事务码” SE24 或 SE80
“局部类 vs 全局类” 局部类只在程序内可见,全局类是Repository对象
“Refactoring Assistant” 辅助将局部类迁移到全局类或接口