REPORT Z_FUNCTIONAL_METHOD.
CLASS circle DEFINITION.
PUBLIC SECTION.
METHODs get_area IMPORTING VALUE(i_radius) type i value指定参数传递形式默认是引用传递
RETURNING VALUE(r_size) TYPE f. returning可以替代importing和exporting,这边替代的是exporting
PRIVATE SECTION.
CONSTANTS pi type f VALUE '3.1415926'.
endclass.
CLASS circle IMPLEMENTATION.
METHOD get_area.
r_size = i_radius ** 2 * pi.
ENDMETHOD.
ENDCLASS.
PARAMETERS radius TYPE i.
DATA: o_circle TYPE REF TO circle,
area TYPE f.
START-OF-SELECTION.
CREATE OBJECT o_circle.
CALL METHOD o_circle->get_area
EXPORTING i_radius = radius
RECEIVING r_size = area. 使用returning这边就应该用receiving关键字定义接受.
WRITE: / area.
area = o_circle->get_area( radius ). 这种方法是函数方法,可以直接赋值,调用方法得到结果后直接赋给area变量
WRITE: / area.
第二次看:
如果方法中定义了返回参数,可以这样调用 INUMBS = o_vehicle->accelerate( NUMB = 1 ). numb是传入参数。 INUMBS相当于返回参数,当然只返回一个参数的时候才可以这样使用。 如果不是这样写的话就是原本的方式 如下: CALL METHOD o_vehicle->accelerate EXPORTING numb = 1 "传入值,可以是变量,如果是定义的时候关键字是Importing不是EXPORTING receiving rnumb = INUMBS "返回值,如果是方法定义的时候这边就是returning关键字而不是receiving EXCEPTIONS MESSAGEERRO = 1 others = 2 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.