ABAP 对象
ABAP 对象
🎯 对象的概念
对象是一种特殊类型的变量,具有不同的==特征==和==行为==。对象的特性或属性用于描述对象的==状态==,行为或方法表示对象执行的==动作==。
对象是类的==实例==。它表示真实世界的实体,例如人或编程实体,如变量和常量。
对象的三个主要特点
| 特点 | 说明 |
|---|---|
| ==状态== | 由一组属性及其值描述 |
| ==唯一身份== | 每个对象有独一无二的标识 |
| ==行为== | 在一段时间内属性中发生的变化 |
ℹ️状态 vs 行为
- 对象的状态可以被描述为一组属性及其值。例如,银行帐户具有一组属性:帐号、名称、帐户类型、余额。
- 对象的行为是指在一段时间内在其属性中发生的更改。
🔍 对象的唯一性
每个对象具有==唯一的标识==,可以用于将其与其他对象区分开。两个对象可以表现出相同的行为,并且它们可以具有或不具有相同的状态,但它们从不具有相同的身份。
两个人可能具有相同的姓名、年龄和性别,但他们不相同。类似地,对象的身份在其整个生命周期永远不会改变。
^object-uniqueness
📋 对象交互
对象可以通过==发送消息==来相互交互。对象包含用于操作数据的==数据==和==代码==。对象也可以在类的帮助下用作用户定义的数据类型。
对象也称为==类型类的变量==。定义类后,可以创建属于该类的任意数量的对象。每个对象都与创建它的类型类的数据相关联。
graph TD
A[类 Class] -->|实例化| B[对象1]
A -->|实例化| C[对象2]
A -->|实例化| D[对象N]
B -->|发送消息| C
C -->|发送消息| D
D -->|发送消息| B
🏗️ 创建对象
对象创建通常包括以下步骤:
1. 创建引用变量
引用类创建引用变量,其语法是:
1 | DATA: <object_name> TYPE REF TO <class_name>. |
2. 创建对象实例
从引用变量创建对象,其语法是:
1 | CREATE OBJECT: <object_name>. |
💡两步创建流程
- 先声明
TYPE REF TO— 创建引用变量(指针) - 再
CREATE OBJECT— 在内存中分配实际对象
两步缺一不可,引用变量只是指向对象的”遥控器”。
graph LR
A["DATA lo_obj TYPE REF TO zcl_class"] --> B["引用变量(指针)"]
B -->|"CREATE OBJECT lo_obj"| C["实际对象(内存)"]
C -->|"lo_obj->method()"| D["访问对象成员"]
💡 示例代码
1 | REPORT zdemo_object. |
输出结果
1 | ABAP Objects. |
💥代码解析
CLASS Class1 DEFINITION— 定义类的结构(属性和方法声明)CLASS Class1 IMPLEMENTATION— 实现类的方法逻辑TYPE REF TO Class1— 创建指向 Class1 的引用变量CREATE OBJECT: Class1— 实例化对象Class1->text1— 使用->运算符访问对象成员CALL METHOD:— 调用对象方法
⚠️ 注意事项
- 对象是==类的实例==,每个对象有==唯一标识==
- 对象通过==消息==进行交互
- 可以创建==多个对象实例==
- 使用
->运算符访问对象的属性和方法 - 引用变量为空时访问成员会导致
CX_SY_REF_IS_INIT异常