类方法的声明及属性

*----------------------------------------------------------------------*
*       CLASS callobj DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj DEFINITION.
  PUBLIC SECTION.
    DATA:BEGIN OF l_struc,"定义可公用的结构体、内表及方法
         name(10TYPE 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_valueLIKE ltab,"定义传入内表,自定义类
                                                     "方法名"SET"
            get EXPORTING value(get_valueTYPE i,"自定义类方法名“GET”
            chg CHANGING value(chg_valueTYPE 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值