Hello,

Sign up to join our community!

Welcome Back,

Please sign in to your account!

Forgot Password,

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

You must login to ask a question.

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

SAP EWM Help Latest Questions

  • 0
  • 0
DPM125

Constructor in ABAP

A constructor is a special method automatically called when an object is created using CREATE OBJECT or NEW.

Types of Constructors in ABAP

Type Method Name Called On Purpose
Instance Constructor CONSTRUCTOR When an object is created (NEW or CREATE OBJECT) To initialize instance-specific data
Class Constructor CLASS_CONSTRUCTOR When the class is first used To initialize class-level (static) data

 

REPORT zrep_lclclass.

CLASS zcl_demo DEFINITION.
  PUBLIC SECTION.
    METHODSconstructor,               " Instance constructor
             display_instance_value.

    CLASS-METHODSclass_constructor,  " Class constructor
                   display_class_value.

  PRIVATE SECTION.
    DATAlv_instance_val TYPE string.
    CLASS-DATAgv_class_val TYPE string.
ENDCLASS.

CLASS zcl_demo IMPLEMENTATION.

  " Instance Constructor
  METHOD constructor.
    lv_instance_val 'Initialized in CONSTRUCTOR'.
    WRITE/ '>> Instance CONSTRUCTOR called'.
  ENDMETHOD.

  " Class Constructor
  METHOD class_constructor.
    gv_class_val 'Initialized in CLASS_CONSTRUCTOR'.
    WRITE/ '>> CLASS_CONSTRUCTOR called (only once)'.
  ENDMETHOD.

  METHOD display_instance_value.
    WRITE/ 'Instance value:'lv_instance_val.
  ENDMETHOD.

  METHOD display_class_value.
    WRITE/ 'Class value:'gv_class_val.
  ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

* Access class method (triggers class constructor first time)
  zcl_demo=>display_class_value).

  SKIP.

* Create object (triggers instance constructor)
  DATA(lo_obj1NEW zcl_demo).
  lo_obj1->display_instance_value).

  SKIP.

* Create another object (instance constructor runs again, but not class constructor)
  DATA(lo_obj2NEW zcl_demo).
  lo_obj2->display_instance_value).

  SKIP.

* Access class method again (class constructor NOT triggered again)
  zcl_demo=>display_class_value). 

Output:

 

Related Questions

Leave an answer

Leave an answer