简单的ABAP面相对象实例

本文介绍了 ABAP 中类的定义与实现过程,包括构造函数、多种方法类型的使用示例,如普通方法、静态方法等。

"包括定义和实现class,属性、构造函数、各种普通方法、静态方法等。

REPORT  ztest_sam_001.
"定义class
*----------------------------------------------------------------------*
*       CLASS ob1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ob1 DEFINITION.
  PUBLIC SECTION.
    DATA name TYPE string VALUE 'name'.

    METHODS:
            constructor IMPORTING i_name TYPE string,"构造函数
            m1,
            m2 IMPORTING msg TYPE string,
            m3 IMPORTING msg1 TYPE string msg2 TYPE string EXPORTING msg3 TYPE string,
            m4 RETURNING value(r) TYPE string.
    CLASS-METHODS: m5.

ENDCLASS.                    "ob1 DEFINITION
"实现class
*----------------------------------------------------------------------*
*       CLASS ob1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ob1 IMPLEMENTATION.
  METHOD constructor.
    name = i_name.
  ENDMETHOD.                    "constructor
  METHOD m1.
    WRITE: '方法中打印'.
  ENDMETHOD.                    "m1
  METHOD m2.
    WRITE: / msg.
  ENDMETHOD.                    "m1
  METHOD m3.
    CONCATENATE msg1 msg2 name INTO msg3 SEPARATED BY '*'.
  ENDMETHOD.                    "m3
  METHOD m4.
    r = name.
  ENDMETHOD.                    "m4
  METHOD m5.
    WRITE: / 'static'.
  ENDMETHOD.                    "m5
ENDCLASS.                    "ob1 IMPLEMENTATION


START-OF-SELECTION.

  ob1=>m5( ).

  DATA ob TYPE REF TO ob1.    "创建class实例
  CREATE OBJECT ob
    EXPORTING
      i_name = 'sam'.        "初始化
  ob->m1( ).
  DATA s1 TYPE string.
  s1 = ob->m4( ).
  ob->m2( msg = s1 ).
  DATA msg TYPE string.

  ob->m3(
  EXPORTING
      msg1 = 'msg'
      msg2 =  'm3'
      IMPORTING
        msg3 = msg
    ).
  WRITE: / msg.

  WRITE: / 'ztest_ob1 test'.
  DATA: o1 TYPE REF TO ztest_ob1.   "-------se24 是创建
  CREATE OBJECT o1.
  o1->m1( 's' ).

  DATA: st1 TYPE string.
  o1->m2(
  EXPORTING     "--------------------------注意exporting、importing和定义时相反
    s1 = 'test s1'
  IMPORTING
    s2 = st1

    ).
  WRITE: / st1.

### ABAP面向对象编程技术文档与教程 ABAP作为SAP生态系统中的核心开发语言,其面向对象编程(OOP)特性为开发者提供了更强大的功能和灵活性。对于希望深入学习ABAP OOP的初级和中级开发人员来说,可以从以下几个方面入手。 #### 一、基础知识 ABAP面向对象编程的基础概念涵盖了类、接口、继承以及封装等内容。这些基本概念可以通过零基础ABAP学习教程系列文章来掌握[^1]。该系列不仅适用于初学者,也能够帮助有一定经验的开发者巩固理论知识并提升实践能力。 #### 二、工具支持 在实际项目中使用ABAP Development Tools (ADT),可以极大地方便OO代码的重构工作,并能自动生成单元测试方法[^2]。这使得编写可测试性强的代码变得更加容易,同时也提高了软件质量。 #### 三、进阶技巧 为了进一步提高自己的技能水平,建议阅读关于如何撰写易于测试的ABAP代码的相关资料[Writing Testable Code for ABAP]。这部分内容会详细介绍怎样设计合理的类结构以便于后期维护与扩展;同时还会讲解有关分解复杂业务逻辑成简单子任务的方法论,从而让整个程序更加模块化且清晰易懂。 以下是快速实现一个简单ABAP OO示例: ```abap CLASS lcl_person DEFINITION. PUBLIC SECTION. METHODS: constructor IMPORTING iv_name TYPE string, say_hello EXPORTING ev_message TYPE string. ENDCLASS. CLASS lcl_person IMPLEMENTATION. METHOD constructor. me->name = iv_name. ENDMETHOD. METHOD say_hello. CONCATENATE 'Hello,' name INTO ev_message SEPARATED BY space. ENDMETHOD. ENDCLASS. START-OF-SELECTION. DATA(lo_person) = NEW lcl_person( iv_name = `John` ). DATA(lv_greeting) = lo_person->say_hello( ). WRITE:/ lv_greeting. ``` 此段代码定义了一个名为`lcl_person` 的类,其中包含了构造函数用于初始化实例变量以及另一个用来返回问候语句的方法。最后,在主程序部分创建了这个类的一个新实例并将结果打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值