zoukankan      html  css  js  c++  java
  • abap objectoriented–使用constructor

    这一节通过上节给出的例子,定义类的初始化。

    *----------------------------------------------------------------------*

    * INCLUDE Z_SAMPLE_LCL_AIRPLANE *

    *----------------------------------------------------------------------*

    ******************************************

    * Definition part

    ******************************************

    CLASS lcl_airplane DEFINITION.

    *------------------------------

    * Public section

    *------------------------------

    PUBLIC SECTION.

    TYPES: t_name(25) TYPE c.

    METHODS:

          constructor    importing p2_name      type t_name
                                   p2_planetype  TYPE saplane-planetype,

    set_attributes IMPORTING p_name TYPE t_name

    p_planetype TYPE saplane-planetype,

    display_attributes,

    display_n_o_airplanes.

    *------------------------------

    * Private section

    *------------------------------

    PRIVATE SECTION.

    * Private attributes

    DATA: name(25) TYPE c,

    planetype TYPE saplane-planetype.

    * Private static attribute

    CLASS-DATA n_o_airplanes TYPE i.

    ENDCLASS.

    ******************************************

    * Implementation part

    ******************************************

    CLASS lcl_airplane IMPLEMENTATION.

    METHOD constructor.

    * Counts number of instances

    n_o_airplanes = n_o_airplanes + 1.

        name      = p2_name.
        planetype = p2_planetype.

    ENDMETHOD.

    METHOD set_attributes.

    name = p_name.

    planetype = p_planetype.

    ENDMETHOD.

    METHOD display_attributes.

    WRITE:/ 'Name:', name, 'Planetype:', planetype.

    ENDMETHOD.

    METHOD display_n_o_airplanes.

    WRITE: / 'No. planes:', n_o_airplanes.

    ENDMETHOD.

    ENDCLASS.

    ---------------------------------------------------------------------------------------------

    REPORT ZBOBO_OO_011 .

    Include z_sample_lcl_airplane.

    * Create reference to class lcl_airplane

    DATA: airplane1 TYPE REF TO lcl_airplane,

    airplane2 TYPE REF TO lcl_airplane.

    START-OF-SELECTION.

    * Create instance

    CREATE OBJECT airplane1

    Exporting p2_name = ‘Airp1’

    P2_planetype = ‘BoBo’.

    CALL METHOD: airplane1->display_n_o_airplanes.

    CREATE OBJECT airplane2

    Exporting p2_name = ‘Airp1’

    P2_planetype = ‘BoBo’.

    * Setting attributes using a method with parameters

    * 修改了plane1的属性,但是plane2的没有改变

    CALL METHOD airplane1->set_attributes EXPORTING p_name = 'Kurt'

    p_planetype = 'MD80'.

    END-OF-SELECTION.

    * Using methods

    * 显示已经修改过的属性

    CALL METHOD: airplane1->display_n_o_airplanes,

    airplane1->display_attributes.

    * 初始化的属性

    CALL METHOD: airplane2->display_n_o_airplanes,

    Airplane2->display_attributes.

  • 相关阅读:
    MySQL之数据的备份与还原
    调用、查看、修改、删除存储过程和函数
    变量的使用、游标的使用、流程控制的使用
    存储过程与函数
    elementUI 表格设置表头样式
    oracle先排序再分页
    postgresql行转列
    crosstab(unknown, unknown) does not exist
    sublime安装php_beautifier来格式化PHP代码
    从今天开始我要经常更新博客
  • 原文地址:https://www.cnblogs.com/wequst/p/1513450.html
Copyright © 2011-2022 走看看