当前位置: 首页 > news >正文

函数方法

REPORT  Z_FUNCTIONAL_METHOD.
CLASS circle DEFINITION.
  PUBLIC SECTION.
    METHODs get_area IMPORTING VALUE(i_radiustype i             value指定参数传递形式默认是引用传递
                     RETURNING VALUE(r_sizeTYPE f.                         returning可以替代importing和exporting,这边替代的是exporting

  PRIVATE SECTION.
    CONSTANTS pi type VALUE '3.1415926'.
endclass.

CLASS circle IMPLEMENTATION.
  METHOD get_area.
    r_size i_radius ** * 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_arearadius ).          这种方法是函数方法,可以直接赋值,调用方法得到结果后直接赋给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.

 

 

 

转载于:https://www.cnblogs.com/caizjian/p/3237301.html

相关文章:

  • 【Sqlserver】SqlServer中EXEC 与 SP_EXECUTESQL的 区别
  • linux下的文件操作——批量重命名
  • svn版本控制-windows篇
  • 目标检测面面观
  • 支付-微信支付(1)
  • 如何让open***在windows启动时自动加载
  • swift学习笔记《4》
  • myeclipse中如何查看jdk的类文件
  • WPF 控件库——带有惯性的ScrollViewer
  • 利用 docker 配置 pinbot-crawl 环境
  • Express简介
  • Spring源码剖析依赖注入实现
  • Linux中关机命令详解
  • 迷茫的时候就看看这100句,希望对你有所启发
  • 洛谷 P1855 榨取kkksc03 (二维费用背包)
  • 【Leetcode】101. 对称二叉树
  • 2019.2.20 c++ 知识梳理
  • Android优雅地处理按钮重复点击
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • JavaScript创建对象的四种方式
  • java概述
  • React系列之 Redux 架构模式
  • 第2章 网络文档
  • 强力优化Rancher k8s中国区的使用体验
  • 什么是Javascript函数节流?
  • 赢得Docker挑战最佳实践
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 【云吞铺子】性能抖动剖析(二)
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​Python 3 新特性:类型注解
  • ​TypeScript都不会用,也敢说会前端?
  • #define,static,const,三种常量的区别
  • #QT(串口助手-界面)
  • $.proxy和$.extend
  • $GOPATH/go.mod exists but should not goland
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计ssm电影分享网站
  • (理论篇)httpmoudle和httphandler一览
  • (原創) 物件導向與老子思想 (OO)
  • (转)大道至简,职场上做人做事做管理
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET程序员迈向卓越的必由之路
  • .NET文档生成工具ADB使用图文教程
  • /var/log/cvslog 太大
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [BT]BUUCTF刷题第9天(3.27)
  • [BZOJ2208][Jsoi2010]连通数