FavoriteLoading
0

ABAP面向对象(Object Orientation)编程3-类方法传递参数

[隐藏]

1, 参数种类

同form一样,OO中的method也可以传递参数,有importing,exporting,changing,returning。

2017-02-28_20-42-45

注意:RETURNING 用来替换EXPORTINGCHANGING不能同时使用。定义了一个形式参数 r 来接收返回值,并且只能是值传递。

参数调用method的语法:

RECEIVING:用来接收METHODS /CLASS-METHODS 中RETURNING选项返回的值

如果EXPORTING、IMPORTING、CHANGING、RECEIVING、EXCEPTIONS、OTHERS同时出现时,应该按此顺序来编写

使用此种方式调用(使用 EXPORTINGIMPORTING等这些选项)时,如果原方法声明时带了返回值RETURNING,只能使用RECEIVING来接受,而不能使用等号来接收返回值,下面用法是错误的:

2, 方法调用方式

method调用分为以下几种形式:

  • meth( )

此种方式仅适用于没有输入参数IMPORTING)、输入\输出参数CHANGING)、或者有但都是可选的、或         者不是可选时但有默认值也可

  • meth( a )

此种方式仅适用于只有一个必选输入参数IMPORTING)(如果还有其他输入参数,则其他都为可选,或者            不是可选时但有默认值也可),或者是有多个可选输入参数IMPORTING)(此时没有必选输入参数情况                  下)的 情况下但方法声明时通过使用PREFERRED PARAMETER选项指定了其中某个可选参数为首选参数            (首选参数 即在使用meth( a )方式传递一个参数进行调用时,通过实参a传递给设置为首选的参数)

  • meth( p1 = a1 p2 = a2 ... )

此种方式适用于有多个必选的输入参数(IMPORTING)方法的调用(其它如CHANGING、EXPORTING没有,或者有但可选),如果输入参数(IMPORTING)为可选,则也可以不必传

Return唯一返回值

RETURNING 用来替换EXPORTINGCHANGING不能同时使用。定义了一个形式参数 r 来接收返回值,并且只能是值传递

具有唯一返回值的函数方法可以直接用在以下语句中:逻辑表达式(IF、ELSEIF、WHILE、CHECK、WAIT)、CASE、LOOP、算术表达式、赋值语句

函数方法可以采用上面简单调用方式来调用:meth( )、meth( a )、meth( p1 = a1 P2 = a2 ... )

方法还可以进行动态调用, 即通过变量对方法名进行指定, 例如下列语句:

实参的动态传递:

其中实参必须在程序中放置在两个特定类型的内表中, 传递给方法, 其中参数表ptab可以参照类型组ABAP_PARMBID(行类型)和ABAP_PARMBIND_TAB(表类型)生成; 异常表etab 可以参照ABAP_EXCBIND(行类型)和ABAP_EXCBIND_TAB(表类型)生成.

3, 简单例子代码

简单的例子代码如下:

2017-02-28_20-36-56

以上。