abap class 构造器

       abap 构造方法是由运行时环境自动调用的,一般用于初始化操作,不能在程序中由程序调用,系统通常会生成一个默认的构造方法。构造方法不包含任何形式的输出参数,abap有实例构造方法和类构造方法两种;

    .1:实例构造方法在实例化,该方法在每一次创建对象的时候调用,该方法与一般的方法有两点不同,一是有预定义的名字CONSTRTCTOR;二是该方法必须在公有部分进行声明。
    .2:类构造方法只在类第一次被加载到程序中调用,如果有多次实例化类也只调用一次类构造方法,类构造方法有一个固定的名字:CLASS_CONSTRUCTOR.在类构造方法中只能访问类的静态属性。

实例构造方法和类构造方法都必须在PUBLIC SECTION中,且都需要在DEFINITION中声明,IMPLEMENTATION实现。

*&---------------------------------------------------------------------*
*& Report  ZTCXHTEST_CONSTRUCTOR

*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTCXHTEST_CONSTRUCTOR.
*----------------------------------------------------------------------*
*       CLASS vehicle DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS vehicle DEFINITION.
  PUBLIC SECTION.
    METHODS:  show_speed,
              constructor IMPORTING i_speed TYPE i,
              accelerate IMPORTING rate TYPE i.
  PRIVATE SECTION.
    DATA: speed TYPE i VALUE 0.
ENDCLASS.                    "vehicle DEFINITION

*----------------------------------------------------------------------*
*       CLASS vehicle IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS vehicle IMPLEMENTATION.
  METHOD show_speed.
    WRITE:  / 'speed',  speed.
  ENDMETHOD.                    "show_speed

  METHOD accelerate.
    speed = speed + rate.
  ENDMETHOD.                    "accelerate

  METHOD  constructor.
    speed = i_speed.
  ENDMETHOD.                    "constructor
ENDCLASS.                    "vehicle IMPLEMENTATION

DATA o_vehicle TYPE REF TO vehicle.
START-OF-SELECTION.
  CREATE OBJECT o_vehicle EXPORTING i_speed = 4.
  CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
  CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
  CALL METHOD o_vehicle->show_speed.

猜你喜欢

转载自caoxuhuan.iteye.com/blog/923675
今日推荐