"包括定义和实现class,属性、构造函数、各种普通方法、静态方法等。
REPORT ztest_sam_001.
"定义class
*----------------------------------------------------------------------*
* CLASS ob1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ob1 DEFINITION.
PUBLIC SECTION.
DATA name TYPE string VALUE 'name'.
METHODS:
constructor IMPORTING i_name TYPE string,"构造函数
m1,
m2 IMPORTING msg TYPE string,
m3 IMPORTING msg1 TYPE string msg2 TYPE string EXPORTING msg3 TYPE string,
m4 RETURNING value(r) TYPE string.
CLASS-METHODS: m5.
ENDCLASS. "ob1 DEFINITION
"实现class
*----------------------------------------------------------------------*
* CLASS ob1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ob1 IMPLEMENTATION.
METHOD constructor.
name = i_name.
ENDMETHOD. "constructor
METHOD m1.
WRITE: '方法中打印'.
ENDMETHOD. "m1
METHOD m2.
WRITE: / msg.
ENDMETHOD. "m1
METHOD m3.
CONCATENATE msg1 msg2 name INTO msg3 SEPARATED BY '*'.
ENDMETHOD. "m3
METHOD m4.
r = name.
ENDMETHOD. "m4
METHOD m5.
WRITE: / 'static'.
ENDMETHOD. "m5
ENDCLASS. "ob1 IMPLEMENTATION
START-OF-SELECTION.
ob1=>m5( ).
DATA ob TYPE REF TO ob1. "创建class实例
CREATE OBJECT ob
EXPORTING
i_name = 'sam'. "初始化
ob->m1( ).
DATA s1 TYPE string.
s1 = ob->m4( ).
ob->m2( msg = s1 ).
DATA msg TYPE string.
ob->m3(
EXPORTING
msg1 = 'msg'
msg2 = 'm3'
IMPORTING
msg3 = msg
).
WRITE: / msg.
WRITE: / 'ztest_ob1 test'.
DATA: o1 TYPE REF TO ztest_ob1. "-------se24 是创建
CREATE OBJECT o1.
o1->m1( 's' ).
DATA: st1 TYPE string.
o1->m2(
EXPORTING "--------------------------注意exporting、importing和定义时相反
s1 = 'test s1'
IMPORTING
s2 = st1
).
WRITE: / st1.