*&---------------------------------------------------------------------* *& Include Z_CALCULADORA_OBJ *&---------------------------------------------------------------------* ************** INTERFACES ************************************************* INTERFACE I_NUMERO. METHODS: B1 EXPORTING value(get_num) TYPE c, B2 EXPORTING value(get_num2) TYPE c, B3 EXPORTING value(get_num3) TYPE c, B4 EXPORTING value(get_num4) TYPE c, B5 EXPORTING value(get_num5) TYPE c, B6 EXPORTING value(get_num6) TYPE c, B7 EXPORTING value(get_num7) TYPE c, B8 EXPORTING value(get_num8) TYPE c, B9 EXPORTING value(get_num9) TYPE c, B0 EXPORTING value(get_num0) TYPE c. ENDINTERFACE. INTERFACE I_OPERACION. METHODS: B11 EXPORTING value(get_op) TYPE c, B12 EXPORTING value(get_op2) TYPE c, B13 EXPORTING value(get_op3) TYPE c, B14 EXPORTING value(get_op4) TYPE c. ENDINTERFACE. INTERFACE I_OTHER. METHODS: BC, EJECUTAR IMPORTING set_op TYPE c EXPORTING get_value TYPE c. ENDINTERFACE. ************************************************************************ ************************************************************************ CLASS calculadora DEFINITION. PUBLIC SECTION. INTERFACES: I_NUMERO, I_OPERACION, I_OTHER. PRIVATE SECTION. DATA: numero1(15) TYPE c, numero2(15) TYPE c, operacion TYPE c, resultado(15) TYPE c, flag TYPE i value 0. ENDCLASS. ************************************************************************ ************************************************************************ CLASS calculadora IMPLEMENTATION. METHOD I_NUMERO~B1. if flag eq 0. CONCATENATE numero1 '1' INTO numero1. get_num = numero1. else. CONCATENATE numero2 '1' INTO numero2. get_num = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B2. if flag eq 0. CONCATENATE numero1 '2' INTO numero1. get_num2 = numero1. else. CONCATENATE numero2 '2' INTO numero2. get_num2 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B3. if flag eq 0. CONCATENATE numero1 '3' INTO numero1. get_num3 = numero1. else. CONCATENATE numero2 '3' INTO numero2. get_num3 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B4. if flag eq 0. CONCATENATE numero1 '4' INTO numero1. get_num4 = numero1. else. CONCATENATE numero2 '4' INTO numero2. get_num4 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B5. if flag eq 0. CONCATENATE numero1 '5' INTO numero1. get_num5 = numero1. else. CONCATENATE numero2 '5' INTO numero2. get_num5 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B6. if flag eq 0. CONCATENATE numero1 '6' INTO numero1. get_num6 = numero1. else. CONCATENATE numero2 '6' INTO numero2. get_num6 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B7. if flag eq 0. CONCATENATE numero1 '7' INTO numero1. get_num7 = numero1. else. CONCATENATE numero2 '7' INTO numero2. get_num7 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B8. if flag eq 0. CONCATENATE numero1 '8' INTO numero1. get_num8 = numero1. else. CONCATENATE numero2 '8' INTO numero2. get_num8 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B9. if flag eq 0. CONCATENATE numero1 '9' INTO numero1. get_num9 = numero1. else. CONCATENATE numero2 '9' INTO numero2. get_num9 = numero2. endif. ENDMETHOD. METHOD I_NUMERO~B0. if flag eq 0. CONCATENATE numero1 '0' INTO numero1. get_num0 = numero1. else. CONCATENATE numero2 '0' INTO numero2. get_num0 = numero2. endif. ENDMETHOD. **** METHOD I_OPERACION~B11. operacion = '+'. flag = 1. get_op = operacion. ENDMETHOD. METHOD I_OPERACION~B12. operacion = '-'. flag = 1. get_op2 = operacion. ENDMETHOD. METHOD I_OPERACION~B13. operacion = '*'. flag = 1. get_op3 = operacion. ENDMETHOD. METHOD I_OPERACION~B14. operacion = '/'. flag = 1. get_op4 = operacion. ENDMETHOD. METHOD I_OTHER~BC. operacion = ''. flag = 0. numero1 = ''. numero2 = ''. ENDMETHOD. METHOD I_OTHER~ejecutar. IF set_op EQ '+'. resultado = numero1 + numero2. ELSEIF set_op EQ '-'. resultado = numero1 - numero2. ELSEIF set_op EQ '*'. resultado = numero1 * numero2. ELSEIF set_op EQ '/'. resultado = numero1 / numero2. ENDIF. get_value = resultado. ENDMETHOD. ENDCLASS. ************************************************************************