ABAP 面向对象系列之四

45a6bb83d64ee688bc3e1ed5


这一节通过一个最简单的例子来介绍如何使用类,以及类的属性和方法。

先把背景介绍一下:

创建一个lcl_airplane类,通过方法set_attributes设置它的属性,通过display_attributes显示实例的属性,通过display_n_o_airplanes显示已经创建的实例的个数。

*———————————————————————-*

* INCLUDE Z_SAMPLE_LCL_AIRPLANE *

*———————————————————————-*

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

* Definition part

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

CLASS lcl_airplane DEFINITION.

*——————————

* Public section

*——————————

PUBLIC SECTION.

TYPES: t_name(25) TYPE c.

METHODS:

constructor, “初始化类

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.

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.

CALL METHOD: airplane1->display_n_o_airplanes.

CREATE OBJECT airplane2.

* Setting attributes using a method with parameters

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.


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

No Comments

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量