zoukankan      html  css  js  c++  java
  • abap objectoriented--基本定义语句

    引用:翱翔云天

    这一节我们来看一下abap oo的定义语句,包括类,方法,事件,属性,接口。

    1. 定义类

    ******************************************
    * Definition part
    ******************************************
    CLASS xxx DEFINITION.
    *------------------------------
    * Public section
    *------------------------------
      PUBLIC SECTION.
        TYPES:
        DATA: 
    *   Static data
        CLASS-DATA:
    *   Methods
        METHODS:
    *     Using the constructor to initialize parameters
           constructor    IMPORTING xxx type yyy,              
    *     Method with parameters
          mm1 IMPORTING iii   TYPE ttt.
    *     Method without parameters
          mm2.
    *   Static methods
        CLASS-METHODS:      
    *---------------------------------------------------*
    * Protected section. Also accessible by subclasses
    *---------------------------------------------------
      PROTECTED SECTION.
    *---------------------------------------------------
    * Private section. Not accessible by subclasses
    *---------------------------------------------------
      PRIVATE SECTION.
    ENDCLASS.
    ******************************************
    * Implementation part
    ******************************************
    CLASS lcl_airplane IMPLEMENTATION.
      METHOD constructor.
      ENDMETHOD.
      METHOD mm1.
      ENDMETHOD.
      METHOD mm2.
      ENDMETHOD.
    ENDCLASS.
     

    2. 定义继承

    CLASS xxx DEFINITION INHERITING FROM yyy.
     

    3. 定义接口

    INTERFACE lif_document
      DATA:          author type ref to lcl_author.
      METHODS:  print,
                display.
    ENDINTERFACE.
    CLASS lcl_text_document DEFINITION.
       PUBLIC SECTION.
          INTERFACES lif_document.
          METHODS     display.
    ENDCLASS.
    CLASS lcl_text_document IMPLEMENTTION.
      METHOD lif_document~print.
      ENDMETHOD.
      METHOD lif_document~display
      ENDMETHOD.
      METHOD display.
      ENDMETHOD.
    ENDCLASS.
    REPORT zzz.
      DATA: text_doc TYPE REF TO lcl_document.
      Start-of-selection.
        CREATE OBJECT text_doc.
        CALL METHOD text_doc->lif_document~print.
        CALL METHOD text_doc->lif_document~display.
    CALL METHOD text_doc->display.
     

    4. 事件

    CLASS <classname> DEFINITION.
      EVENTS: <event> EXPORTING VALUE (<ex_par>) TYPE type.
    CLASS <classname> IMPLEMENTATION.
      METHOD <m>:
        RAISE EVENT <event> EXPORTING <ex_par> = <act_par>.
    Handling events:
    CLASS <classname> DEFINITION.
      METHODS: <on_event> FOR <event> OF {<classname> ! <interface> }
    IMPORTING <imp_par1>...<imp_parN> SENDER.
    Setting handler  
    SET HANDLER <ref_handle> <on_event> FOR {<ref_sender> ! FOR ALL INSTANCES}
               [ACTIVATION <var>]

  • 相关阅读:
    构建之法读书笔记 第4章 两人合作
    ASE19 团队项目 alpha 阶段 Frontend 组 scrum9 记录
    ASE —— 第二次结对作业
    ASE —— 第一次结对作业
    高级软件工程 —— 第一周博客作业
    软工个人总结
    六月上团队项目心得
    团队项目心得
    结对编程收获
    结对作业——随机生成四则运算(Core 第7组)
  • 原文地址:https://www.cnblogs.com/wequst/p/1513454.html
Copyright © 2011-2022 走看看