天天看点

ABAP类的方法(转载)

方法参数传递: 

REPORT z_mehtod_para.

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

*        CLASS vehicle DEFINITION

*        ........                                                       *

CLASS vehicle DEFINITION.

   PUBLIC SECTION.

     METHODS: accelerate IMPORTING rate TYPE i,

              show_speed.

   PRIVATE SECTION.

     DATA speed TYPE i VALUE 0.

ENDCLASS.

*        CLASS vehicle IMPLEMENTATION

CLASS vehicle IMPLEMENTATION.

   METHOD accelerate.

     speed = speed + rate.

   ENDMETHOD.

   METHOD show_speed.

     WRITE: / 'Speed:',speed.

DATA o_vehicle TYPE REF TO vehicle.

START-OF-SELECTION.

   CREATE OBJECT o_vehicle.

   CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.

   CALL METHOD o_vehicle->show_speed.

该示例输出如下: 

     4

方法还可以进行动态调用,即通过变量对方法进行指定,例如下列语句

   meth = acclerate.

   call method o_vehicle->(meth).

函数方法: 

REPORT z_funtional_method.

*        CLASS circle DEFINITION

CLASS circle DEFINITION.

     METHODS get_area IMPORTING value(i_radius) TYPE i

                      RETURNING value(r_size)    TYPE f.

     CONSTANTS pi TYPE f VALUE '3.14159265'.

*        CLASS circle IMPLEMENTATION

CLASS circle IMPLEMENTATION.

   METHOD get_area.

     r_size = i_radius ** 2 * pi.

PARAMETERS radius TYPE i.

DATA: o_circle TYPE REF TO circle,

       area TYPE f.

   CREATE OBJECT o_circle.

   CALL METHOD o_circle->get_area

               EXPORTING i_radius = radius

               RECEIVING r_size = area.

   WRITE: / area.

   area = o_circle->get_area( radius ).

构造方法和析构方法

1. 构造方法

    构造方法是运行时环境自动调用的一种方法,用于为对象设定一个初始化状态,不能在程序运行过程中由程序代码调用.与其他方法类似构造方法也存在静态和实例两种形式.构造方法不一定需要在类中定

义,系统通常会自动生成一个默认的构造方法,将对象状态设置为初始值.

构造方法中不包含任何形式的输出参数,其功能只是定义对象状态,而不是对其进行改变.构造方法在create object语句中被调用,因此根据实例构造方法的定义,该语句本身也可以包含输出参数exporting和

返回值exception选项.如果在对象创建过程中出现异常,则对象被删除,引用变量设为初始值.

     类构造方法属于静态方法,只能在程序中被调用一次,即第一次使用该类时调用,该方法也必须在公有部分声明,其名称必须为class_constructor.

     class-methods class_constructor.

     类构造方法不包含接口,而且在其中只能访问类的静态属性.

构造方法: 

REPORT z_method_constructor.

              constructor IMPORTING i_speed TYPE i,

     WRITE speed.

   METHOD constructor.

     speed = i_speed.

   CREATE OBJECT o_vehicle EXPORTING i_speed = 4.

      8

在对象创建过程中,通过构造方法传递了一个速度初始值作为其初始状态.

2. 析构方法

    在某些面向对象语言中还存在析构方法的概念,该方法在对象删除过程中被调用,目前ABAP对象中尚未提供该方法的实现形式.

专注于企业信息化,最近对股票数据分析较为感兴趣,可免费分享股票个股主力资金实时变化趋势分析工具,股票交流QQ群:457394862

本文转自沧海-重庆博客园博客,原文链接:http://www.cnblogs.com/omygod/archive/2007/12/18/1005123.html,如需转载请自行联系原作者

继续阅读