|
Código fuente -
Ejemplos
|
|
Escrito por Administrator
|
|
Domingo, 12 de Octubre de 2008 07:42 |
*ABAP Objects - Creating your First Local Class* *Author: Marcelo Ramos* Class One Definition *----------------------------------------------------------------------* * CLASS ONE DEFINITION *----------------------------------------------------------------------* CLASS one DEFINITION. PUBLIC SECTION. * The constructor method must be definited on Public Section * Here we're definig a constructor method without parameters. METHODS constructor. METHODS get_attribute RETURNING value(value) TYPE char10. PRIVATE SECTION. DATA attribute TYPE char10. ENDCLASS. "ONE DEFINITION Class One Implementation *----------------------------------------------------------------------* * CLASS one IMPLEMENTATION *----------------------------------------------------------------------* CLASS one IMPLEMENTATION. METHOD constructor. * Inside Construcot we can initialize attributes, call othres methods, etc... MOVE 'value X' TO attribute. ENDMETHOD. "CONSTRUCTOR METHOD get_attribute. MOVE attribute TO value. ENDMETHOD. "get_attribute ENDCLASS. "one IMPLEMENTATION Class Two Definition *----------------------------------------------------------------------* * CLASS two DEFINITION *----------------------------------------------------------------------* CLASS two DEFINITION. PUBLIC SECTION. * Here we're definig a constructor method with a parameter. * Constructor can have only import parameters and its can be defineted * as Optional METHODS constructor IMPORTING value TYPE char10 OPTIONAL. METHODS get_attribute RETURNING value(value) TYPE char10. PRIVATE SECTION. DATA attribute TYPE char10. ENDCLASS. "two DEFINITION Class Two Implementation *----------------------------------------------------------------------* * CLASS two IMPLEMENTATION *----------------------------------------------------------------------* CLASS two IMPLEMENTATION. METHOD constructor. IF value IS NOT INITIAL. MOVE value TO attribute. ELSE. MOVE 'Value Y' TO attribute. ENDIF. ENDMETHOD. "CONSTRUCTOR METHOD get_attribute. MOVE attribute TO value. ENDMETHOD. "get_attribute ENDCLASS. "two IMPLEMENTATION Creation Object DATA o_one TYPE REF TO one. DATA o_two TYPE REF TO two. DATA o_two2 TYPE REF TO two. DATA atribute TYPE char10. Instance Creation START-OF-SELECTION. * As Constructor of class one doesn't has parameters we can create its object as follow CREATE OBJECT o_one. atribute = o_one->get_attribute( ). WRITE / atribute. CLEAR atribute. * As parameter was definited as Optional we can pass the parameter during object instantiation. CREATE OBJECT o_two EXPORTING value = 'Value Z'. atribute = o_two->get_attribute( ). WRITE / atribute. CLEAR atribute. * Or we can just pass a null value Like value = ' '. or value = SPACE. CREATE OBJECT o_two EXPORTING value = ' '. atribute = o_two->get_attribute( ). WRITE / atribute. CLEAR atribute. * As parameter was definited as Optional we can miss the parameter during object instantiation. CREATE OBJECT o_two2. atribute = o_two2->get_attribute( ). WRITE / atribute. CLEAR atribute. The atribute value is printed value X Value Z Value Y Value Y
|