*----------------------------------------------------------------------*
* CLASS callobj DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj DEFINITION.
PUBLIC SECTION.
DATA:BEGIN OF l_struc,"定义可公用的结构体、内表及方法
name(10) TYPE c,
END OF l_struc.
*****定义内表语法不能用OCCURS n CLASS所定义的内表不支持Headr line
DATA:ltab LIKE TABLE OF l_struc INITIAL SIZE 0.
METHODS:set IMPORTING value(set_value) LIKE ltab,"定义传入内表,自定义类
"方法名"SET"
get EXPORTING value(get_value) TYPE i,"自定义类方法名“GET”
chg CHANGING value(chg_value) TYPE i."自定义类方法名“CHC”
ENDCLASS. "callobj DEFINITION
****对于同一个类方法可同时使用多个参数,如:
***************************************************
***METHODS:SET IMPORTING VALUE(SET_VALUE) LIKE LTAB
*** EXPORTING VALUE(GET_VALUE) TYPE I
*** CHANGING VALUE(CHG_VALUE) TYPE I.
***************************************************
CLASS callobj IMPLEMENTATION.
METHOD set.
LOOP AT set_value INTO l_struc.
WRITE: / l_struc.
ENDLOOP.
ENDMETHOD. "set
METHOD get.
get_value = 20.
ENDMETHOD. "get
METHOD chg.
chg_value = chg_value + 20.
ENDMETHOD. "chg
ENDCLASS. "callobj IMPLEMENTATION
DATA obj TYPE REF TO callobj.
DATA num TYPE i.
DATA:l_struc LIKE callobj=>l_struc."参考类变量定义相关结构体及内表
DATA:ltab LIKE callobj=>ltab.
START-OF-SELECTION.
CREATE OBJECT obj.
l_struc-name = 'JERY'.
APPEND l_struc TO ltab."自定义数据
l_struc-name = 'PLATO'.
APPEND l_struc TO ltab.
l_struc-name = 'JASSON'.
APPEND l_struc TO ltab.
CALL METHOD:obj->set EXPORTING set_value = ltab,
obj->get IMPORTING get_value = num.
WRITE:/ num.
CALL METHOD:obj->chg CHANGING chg_value = num.
WRITE:/ num.
转载于:https://www.cnblogs.com/zxiu/p/7561864.html