* Einfache Klasse für Demo des statischen Konstruktors und des Instanzkonstruktors
* sowie eines statischen und dynamischen Methodenaufrufs
CLASS lcl_demo DEFINITION.
PUBLIC SECTION.
* Instanzkonstruktor
METHODS:
constructor.
* funktionale Instanzmethode, gibt Ergebnis zurück
METHODS:
add
IMPORTING
i_var1 TYPE i
i_var2 TYPE i
RETURNING VALUE(rv_erg) TYPE i.
CLASS-METHODS:
* statischer Konstruktor
class_constructor.
* statische funktionale Methode, gibt Ergebnis zurück
CLASS-METHODS:
mul
IMPORTING
i_var1 TYPE i
i_var2 TYPE i
RETURNING VALUE(rv_erg) TYPE i.
ENDCLASS.
CLASS lcl_demo IMPLEMENTATION.
METHOD class_constructor.
WRITE: / 'statischer Konstruktor'.
ENDMETHOD.
METHOD constructor.
WRITE: / 'dynamischer Konstruktor'.
ENDMETHOD.
METHOD add.
rv_erg = i_var1 + i_var2.
ENDMETHOD.
METHOD mul.
rv_erg = i_var1 * i_var2.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
* erster Aufruf einer Methode der Klasse lcl_demo durch den Aufruf von mul( )
* -> ruft den Klassenkonstruktor, danach erst wird mul( ) statisch prozessiert
WRITE: / lcl_demo=>mul( i_var1 = 4 i_var2 = 3 ).
* Objekt der Klasse lcl_demo erzeugen
DATA(o_ref) = NEW lcl_demo( ).
* Methode add( ) aurufen
WRITE: / o_ref->add( i_var1 = 2 i_var2 = 3 ).
* Methode mul( ) dynamisch prozessieren
WRITE: / o_ref->mul( i_var1 = 2 i_var2 = 3 ).