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. Linux虚拟机安装应用程序提示Graphical installers are not supported by the vm

    Linux安装应用程序提示Graphical installers are not supported by the vm 参考链接:http://www-01.ibm.com/support/doc ...

  2. Kafka创建Topic时如何将分区放置到不同的Broker中

    熟悉 Kafka的同学肯定知道,每个主题有多个分区,每个分区会存在多个副本,本文今天要讨论的是这些副本是怎么样放置在 Kafka集群的 Broker 中的. 大家可能在网上看过这方面的知识,网上对这方 ...

  3. javascript基础学习系列-DOM盒子模型常用属性

    最近在学习DOM盒子模型,各种属性看着眼花缭乱,下面根据三个系列来分别介绍一下: client系列 clientWidth :width+(padding-left)+(padding-right)— ...

  4. discuz 忘记安全密码的处理方式 修改pre_common_setting表的数据,

    一定要记住不要清空pre_common_setting表的数据,会给你带来烦恼的!!!!!只修改siteuniqueid 这条数据的密码就行!!!! 也可以先用我这条密码系统自动加密后:[DXRGYC ...

  5. Error creating bean with name 'eurekaAutoServiceRegistration'

    spring-boot项目不断重启,报错: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creat ...

  6. 1.7Oob 构造方法

    1)构造方法 在创建对象后不用调用会自动执行,如无自定义构造会默认执行没有参数没有,且方法体中没有任何语句的, 2)构造方法在main入口开始后就执行

  7. C常用的字符串函数实现

    /** 查找字符串 source 中 是否有指定的子串出现,如果有返回第一个匹配的字符 @param source 源 @param chars 目标 @return 返回值 */ char *fin ...

  8. wpf中的数据模板

    wpf中的模板分为数据模板和控件模板,我们可以通过我们自己定制的数据模板来制定自己想要的数据表现形式.例如:时间的显示可以通过图片,也可以通过简单数字表现出来. 例如: (1)先在Demo这个命名空间 ...

  9. python实现单链表反转(经典笔试题)

    https://blog.csdn.net/su_bao/article/details/81072849 0.说在前面的话 链表结构,说难不难,说易不易,一定要亲自编程实现一下.其次就是一定要耐心, ...

  10. 转:Spring AOP中的动态代理

    原文链接:Spring AOP中的动态代理 0  前言 1  动态代理 1.1 JDK动态代理 1.2 CGLIB动态代理 1.2.1 CGLIB的代理用法 1.2.2 CGLIB的过滤功能 2  S ...