abap对象的创建和调用。方法调用
1: abap中创建类和创建对象,调用方法。
*&---------------------------------------------------------------------*
*& Report ZHANSEN_T1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZHANSEN_T1.
CLASS application DEFINITION. "定义类(相当于抽象类)
PUBLIC SECTION. "公有部分
METHODS:show_text.
PRIVATE SECTION. "私有部分
) TYPE c VALUE 'this is my first abap object'.
ENDCLASS.
CLASS application IMPLEMENTATION. "实现类application。
METHOD show_text.
WRITE text.
ENDMETHOD.
ENDCLASS.
DATA ob_app type ref to application. "创建类的引用
*事件块。
START-OF-SELECTION.
create object ob_app. "创建类对象。
call METHOD ob_app->show_text. "调用对象中的方法
2:创建方法和调用方法 https://blog.csdn.net/rztyzxzy/article/details/49562413
*&---------------------------------------------------------------------*
*& Report ZHANSEN_TEST25
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZHANSEN_TEST25.
*----------------------------------------------------------------------*
* CLASS callobj DEFINITION
*----------------------------------------------------------------------*
* 声明类
*----------------------------------------------------------------------*
CLASS callobj DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF dt_city,
name TYPE char10,
END OF dt_city.
TYPES: dt_it_city TYPE TABLE OF dt_city.
DATA: ls_city TYPE dt_city.
METHODS: meth1 IMPORTING value(ivt_city) TYPE dt_it_city. " 输入参数,內表作为参数
METHODS: meth2 EXPORTING value(evs_city) TYPE dt_city. " 输出参数,结构体作为参数
METHODS: meth3 CHANGING value(cv_num) TYPE i.
ENDCLASS. "callobj DEFINITION
*----------------------------------------------------------------------*
* CLASS callobj IMPLEMENTATION
*----------------------------------------------------------------------*
* 实现类方法
*----------------------------------------------------------------------*
CLASS callobj IMPLEMENTATION.
METHOD meth1.
WRITE: '方法一:'.
LOOP AT ivt_city INTO ls_city.
WRITE: / ls_city-name.
ENDLOOP.
ENDMETHOD. "meth1
METHOD meth2.
evs_city = '济南'.
ENDMETHOD. "meth2
METHOD meth3.
cv_num = cv_num + .
ENDMETHOD. "meth3
ENDCLASS. "callobj IMPLEMENTATION
DATA: obj TYPE REF TO callobj.
DATA: num TYPE i.
DATA: g_struc TYPE callobj=>dt_city. " 参考类变量定义相关结构体及内表
DATA: g_tab TYPE callobj=>dt_it_city.
START-OF-SELECTION.
CREATE OBJECT obj.
g_struc-name = '北京'.
APPEND g_struc TO g_tab.
g_struc-name = '上海'.
APPEND g_struc TO g_tab.
g_struc-name = '广州'.
APPEND g_struc TO g_tab.
CALL METHOD: obj->meth1 EXPORTING ivt_city = g_tab, " g_tab值赋给ivt_city
obj->meth2 IMPORTING evs_city = g_struc. " evs_city值输出到g_struc
WRITE:/ '方法二:',/ g_struc-name.
WRITE:/ '方法三:'.
WRITE: / num.
CALL METHOD: obj->meth3 CHANGING cv_num = num.
WRITE: / num.
3:调用方法,没有跑通
*&---------------------------------------------------------------------*
*& Report ZHANSEN_TEST26
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZHANSEN_TEST26.
CLASS circle DEFINITION. "定义类
PUBLIC SECTION.
METHODS get_ares
IMPORTING VALUE(i_radius) TYPE i "输入参数
RETURNING VALUE(r_size) type f. "返回数据
PRIVATE SECTION.
.
ENDCLASS.
CLASS circle IMPLEMENTATION.
METHOD get_ares.
r_size=i_radius.
ENDMETHOD.
ENDCLASS.
PARAMETERS radius TYPE i. "PARAMETERS定义的参数从屏幕中输入
DATA: o_circle TYPE REF TO circle,
ares TYPE f.
START-OF-SELECTION.
CREATE OBJECT o_circle.
CALL METHOD o_circle->get_ares EXPORTING i_radius=radius RECEIVING r_size=ares.
WRITE:/ ares.
4:直接在类中创建一个方法,可以直接执行。 例如下面的类zcl_class11
method METHOD1.
WRITE 'HELLO'.
endmethod.
可以直接从另一个类中创建类对象,调用该类方法。
method METHOD2.
DATA lv_class11 type ref to zcl_myclass11.
create object lv_class11.
call method lv_class11->METHOD1.
endmethod.
abap对象的创建和调用。方法调用的更多相关文章
- numpy入门—Numpy的核心array对象以及创建array的方法
Numpy的核心array对象以及创建array的方法 array对象的背景: Numpy的核心数据结构,就叫做array就是数组,array对象可以是一维数组,也可以是多维数组: Python的Li ...
- JavaScript对象的创建之工厂方法
通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象. function createPerson(name, age) ...
- 图解JVM执行引擎之方法调用
一.方法调用 方法调用不同于方法执行,方法调用阶段的唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程.Class文件的编译过程中不包括传统编译器中的连接步骤,一 ...
- java 方法调用绑定
将一个方法调用同一个方法主体关联起来被称作绑定.若在程序执行前进行绑定(由编译器和连接器实现),叫做前期绑定.读者可能从来没有听说过这个术语,因为它在面向过程语言中不需要选择就默认的绑定方式.例如C语 ...
- 齐全的IP地址查询接口及调用方法(转)
设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php 腾讯IP地址查询接口:http://fw.qq.com/ipaddress 新浪IP地址查询接口: ...
- ABAP对象-面向对象(转)
转自:https://www.jianshu.com/p/f847c8f71438 1 面向对象基础 不多赘述何为对象与类.简单回顾一下在面向对象特性. 封装 限定内部资源的可见性 多态 相同名称的方 ...
- Js判断对象是否是数组的方法
1.ECMAScript5中有一个现成的方法:Array.isArray(). var obj = {1:[1],2:[2]}, arr = [1], str = "1"; Arr ...
- Java内存区域与内存溢出异常---对象的创建
对象的创建 在语言层面,创建一个对象通常仅仅是一个new关键字而已.在虚拟机层面,虚拟机遇到一个new指令时,首先回去检查这个指令的参数是能在常量池中定位到一个类的符号引用,并检查这个符号引用代表 ...
- 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。
22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...
随机推荐
- Redis 自定义 RedisAppender 插件, 实现日志缓冲队列,集中日志输出.
因为某些异步日志设置了即使队列满了,也不可丢弃,在并发高的时候,导致请求方法同步执行,响应变慢. 编写这个玩意,除了集中日志输出以外,还希望在高并发的时间点有缓冲作用. 之前用Kafka实现了一次入队 ...
- 【JS加密库】SJCL :斯坦福大学JS加密库
斯坦福大学Javascript加密库简称SJCL,是一个由斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全.快速.短小精悍.易使用.跨浏览器的JavaScript加密库. 斯坦福大学下载地址:h ...
- Unity3D Shader 空气扭动效果
//预览图 //原理 一个摄像机CullingMask设置只可见"Distortion"的Layer(需要自己手动加),输入到一张RenderTexture,其实就是用于确定哪里要 ...
- eclipse启动报错:Could not create the java virtual machine
用maven.springboot开发时,安装了当时最新版的eclipse(3.5.5).eclipse解压版的非常方便,想先安装了看看.暂时没有升级其他软件. 打开的时候报错: 原因其实就是还木有升 ...
- hive拉链表
前言 本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理.设计.以及在我们大数据场景下的实现方式. 全文由下面几个部分组成:先分享一下拉链表的用途.什么是拉链表.通过一些小的使用场景来对拉链表做 ...
- PHP之魔术引号
什么是魔术引号 Warning 本特性已自 PHP5.3.0起废弃并将自PHP5.4.0起移除. 当打开,所有的'(单引号),"(双引号), (反斜线)和NULL 字符都会被自动加上一个反 ...
- 安装多个java后,java版本不对
参考资料: https://www.cnblogs.com/Kidezyq/p/5781131.html 主要原因是javac -version是由JAVA_HOME指定的路径中的java版本来决定的 ...
- dbgrideh添加列、多表头及属性
(一)动态添加列 procedure TForm2.FormCreate(Sender: TObject); var vCol : TColumn; begin vCol := DBGrid1 ...
- tensorflow入门笔记(一) tf.app.flags.FLAGS
tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数),而tf.app.flags.FLAGS可以从对应的命令行参数取出参数.举例如下: FL ...
- Frps 家庭服务器访问解决方案
100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址 在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询 ...