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对象的创建和调用。方法调用的更多相关文章

  1. numpy入门—Numpy的核心array对象以及创建array的方法

    Numpy的核心array对象以及创建array的方法 array对象的背景: Numpy的核心数据结构,就叫做array就是数组,array对象可以是一维数组,也可以是多维数组: Python的Li ...

  2. JavaScript对象的创建之工厂方法

    通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象. function createPerson(name, age) ...

  3. 图解JVM执行引擎之方法调用

    一.方法调用 方法调用不同于方法执行,方法调用阶段的唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程.Class文件的编译过程中不包括传统编译器中的连接步骤,一 ...

  4. java 方法调用绑定

    将一个方法调用同一个方法主体关联起来被称作绑定.若在程序执行前进行绑定(由编译器和连接器实现),叫做前期绑定.读者可能从来没有听说过这个术语,因为它在面向过程语言中不需要选择就默认的绑定方式.例如C语 ...

  5. 齐全的IP地址查询接口及调用方法(转)

    设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php 腾讯IP地址查询接口:http://fw.qq.com/ipaddress 新浪IP地址查询接口: ...

  6. ABAP对象-面向对象(转)

    转自:https://www.jianshu.com/p/f847c8f71438 1 面向对象基础 不多赘述何为对象与类.简单回顾一下在面向对象特性. 封装 限定内部资源的可见性 多态 相同名称的方 ...

  7. Js判断对象是否是数组的方法

    1.ECMAScript5中有一个现成的方法:Array.isArray(). var obj = {1:[1],2:[2]}, arr = [1], str = "1"; Arr ...

  8. Java内存区域与内存溢出异常---对象的创建

    对象的创建   在语言层面,创建一个对象通常仅仅是一个new关键字而已.在虚拟机层面,虚拟机遇到一个new指令时,首先回去检查这个指令的参数是能在常量池中定位到一个类的符号引用,并检查这个符号引用代表 ...

  9. 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

    22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...

随机推荐

  1. OpenGL——旋转的六边形(动画)

    代码: #include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut. ...

  2. Kubernetes部署SpringCloud(三) 使用 Ingress-nginx 暴露服务

    之前部署的zuul以及basic-info-api 都仅仅在于flannel 网络内可以访问. 现在来使用Ingress-nginx 对外暴露服务 以下用到的一些docker镜像,是存在我私有仓库的, ...

  3. POJ 1661 Help Jimmy(DP/最短路)

    Help Jimmy Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14980 Accepted: 4993 Descripti ...

  4. 安装了nodejs后在命令行运行npm报错

    安装了nodejs后在命令行运行npm报错:Error: Cannot find module 'internal/util/types' 解决方法:删除目录“C:\Users\mengxiaobo\ ...

  5. C# 方法中的this参数

    x 先看下面的代码: public static class StringExtension { public static void Foo(this string s) { Console.Wri ...

  6. Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\tasks.c,2806

    Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 ...

  7. [development][C] linux 设置线程名称

    两个API, 都是linux的. 不是POSIX, 是GNU?  傻傻搞不清楚. 1. pthread_setname_np / pthread_setname_np 2. ptctl 带 PR_GE ...

  8. [daily][editer] 二进制编辑工具 hyx

    用了众多之后,终于发现了一个好用的二进制编辑工具: hyx https://yx7.cc/code/ https://en.wikipedia.org/wiki/Comparison_of_hex_e ...

  9. CAAnimationDelegate 代理方法没调用

    CAAnimationDelegate 代理方法没调用 应该在 addAnimation调用之前设置代理

  10. LeetCode 575 Distribute Candies 解题报告

    题目要求 Given an integer array with even length, where different numbers in this array represent differ ...