Friday, March 22, 2013

Static Constructor


Static constructor is declared by CLASS-METHODS CLASS_CONSTRUCTOR statement. Here the naming convention must be followed. If we give any other name then that will not be the static constructor. Now static constuctor is called 
1. before any other attributes and methods by using obj->var & obj->meth,
2. before any other static attributes and methods by using cls=>var & cls=>meth,
3. before creating of an object by using create object obj,
4. before registering an event handler method by using set handler cls=>meth for the object obj.

Below is a program where we have defined a static data and a static constructor. The static constructor is implemented in the method - endmethod portion. In the start of selection we write the static attribute but in the output we can see the static constructor function comes first.


REPORT  zsr_test.

*----------------------------------------------------------------------*
*       CLASS cl_construct DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct DEFINITION.
  PUBLIC SECTION.
    CLASS-DATA cl_v_text TYPE char40 VALUE 'SAP ABAP Object Oriented'.
    CLASS-METHODS class_constructor.
ENDCLASS.                    "cl_construct DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_construct IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct IMPLEMENTATION.
  METHOD class_constructor.
    WRITE: / 'Class Constructor gets triggered'.
  ENDMETHOD.                    "class_constructor
ENDCLASS.                    "cl_construct IMPLEMENTATION

START-OF-SELECTION.

  WRITE: / cl_construct=>cl_v_text.


The following is the output.


In similar way if we write any statement after the start of selection, the static constructor will trigger first and then the system will go further, whatever the sequence is.

REPORT  zsr_test.

*----------------------------------------------------------------------*
*       CLASS cl_construct DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct DEFINITION.
  PUBLIC SECTION.
    CLASS-DATA    cl_v TYPE char40 VALUE 'I am Class data'.
    CLASS-METHODS class_constructor.
ENDCLASS.                    "cl_construct DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_construct IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct IMPLEMENTATION.
  METHOD class_constructor.
    WRITE: / 'I am Class Constructor'.
  ENDMETHOD.                    "class_constructor
ENDCLASS.                    "cl_construct IMPLEMENTATION

START-OF-SELECTION.
  WRITE: / 'Hello',
         / cl_construct=>cl_v.

In the following program we are comparing class constructor with class method. The class constructor gets triggered first and then it comes for class method.


REPORT  zsr_test.

*----------------------------------------------------------------------*
*       CLASS cl_construct DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS: class_meth, class_constructor.
ENDCLASS.                    "cl_construct DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_construct IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_construct IMPLEMENTATION.
  METHOD class_meth.
    WRITE: / 'Class Method gets triggered'.
  ENDMETHOD.                    "class_meth

  METHOD class_constructor.
    WRITE: / 'Class Constructor gets triggered'.
  ENDMETHOD.                    "class_constructor
ENDCLASS.                    "cl_construct IMPLEMENTATION

START-OF-SELECTION.
  CALL METHOD cl_construct=>class_meth.

Below is another version of the program where we are declaring an Import parameter to the static constructor element. We are instantiating the parameter with a value. But at the time of compilation we are getting syntactical error which says the Static Constructor cannot have any Import or Export parameter. Following is the reflection:





7 comments:

yektek training said...

nice post thank you

simashree said...

Thank you for such guidance about astrology,Best Blog on
vasiyam in chennai

Bhavya Kumar said...

Best blog.Got to learn new things.Thanks for this Blog SAP Success Factors Training in Chennai

sanayamohit said...

SAP Success Factors Real Time Hands on Training in Chennai...

Don't always Depend on Training Institute Alone and so please aware of Best Trainers too..

http://thecreatingexperts.com/sap-successfactors-training-in-chennai/

If You need a Best Trainer over SAP Success Factors Means??? Please ready for an DEMO From the Trainer MR.Karthick
CONTACT:8122241286

Both Classroom/Online Training is Available!!!!!!

Shruti Ramalingam said...

From My search…Creating Experts provides Best SAP Training with real time projects assistance.

Most of the modules are equipped with advance level topics which the student can learn from the basics to the advance level stage.

They also provide placement assistance in leading MNC companies across the globe according to the current requirements.

http://thecreatingexperts.com/sap-successfactors-training-in-chennai/

And these are the Best SAP training institute which provides Real Time Hands on Training…

codedion Technologies-9003085882

creating Experts-8122241286

http://thecreatingexperts.com/sap-mm-training-in-chennai/

Unknown said...

SAP Success Factors Real Time Hands on Training in Chennai…

Don’t always Depend on Training Institute alone.Please aware of Best Trainers too..

http://thecreatingexperts.com/sap-successfactors-training-in-chennai/

If You need a Best Trainer in SAP Success Factors??? Then be ready for a DEMO From the Trainer MR.Karthick
CONTACT:8122241286
http://thecreatingexperts.com/sap-mm-training-in-chennai/

Both Classroom/Online Training is Available!!!!!!

Keerthi Suresh said...

SAP Success Factors Real Time Hands on Training in Chennai…

Don’t always Depend on Training Institute alone.Please aware of Best Trainers too..

http://thecreatingexperts.com/sap-successfactors-training-in-chennai/

If You need a Best Trainer in SAP Success Factors??? Then be ready for a DEMO From the Trainer MR.Karthick
CONTACT:8122241286
http://thecreatingexperts.com/sap-mm-training-in-chennai/

Both Classroom/Online Training is Available!!!!!!