Beruflich Dokumente
Kultur Dokumente
REPORT Z730OOPS46.
class lcl_eventreceiver DEFINITION.
PUBLIC SECTION.
events e1. "instance event
class-events e2. "static event
methods m1 for event e1 of lcl_eventreceiver.
methods m2 for event e2 of lcl_eventreceiver.
methods m3.
class-methods m4.
endclass.
class lcl_eventreceiver IMPLEMENTATION.
method m1.
write :/ 'Inside instance event handler method m1'.
endmethod.
method m2.
uline.
write :/ 'Inside instance event handler method m2'.
endmethod.
method m3.
write :/ 'Inside instance normal method m3-raising events e1 and e2'.
raise event e1.
raise event e2.
endmethod.
method m4.
write :/ 'Inside static normal method m4'.
* raise event e2. "valid
* raise event e1. "invalid
endmethod.
endclass.
START-OF-SELECTION.
data ob1 type ref to lcl_eventreceiver.
create object ob1.
data ob2 type ref to lcl_eventreceiver.
create object ob2.
set handler ob1->m2.
call method ob1->m3.
call method ob2->m3.
interface intf1.
events e1.
methods m1 for event e1 of intf1.
endinterface.
class lcl_abc DEFINITION.
PUBLIC SECTION.
interfaces intf1.
methods m2 for event e1 of intf1.
methods m3.
endclass.
class lcl_abc IMPLEMENTATION.
method intf1~m1.
write :/ 'inside interface event handler method m1..'.
endmethod.
method m2.
write :/ 'inside interface event handler method m2 ..'.
endmethod.
method m3.
write :/ 'inside normal method m3..'.
raise event intf1~e1.
endmethod.
endclass.
START-OF-SELECTION.
data ob type ref to lcl_abc.
create object ob.
set handler ob->intf1~m1 for ob.
set handler ob->m2 for ob.
call method ob->m3.
class lcl_abc DEFINITION.
PUBLIC SECTION.
methods m1 IMPORTING i_x type i
i_y type i
EXPORTING e_z type i.
endclass.
class lcl_abc IMPLEMENTATION.
method m1.
format color 3.
write :/ 'inside begin of method m1'.
try.
e_z = i_x / i_y.
* catch cx_sy_zerodivide.
catch cx_root.
format color 2.
write :/ 'inside catch block...'.
write :/ 'Cannot divide by zero...'.
format color off.
endtry.
write :/ 'inside end of method m1'.
format color off.
endmethod.
endclass.
START-OF-SELECTION.
PARAMETERS : p_x type i,
p_y type i.
data v_z type i.
data ob type ref to lcl_abc.
create object ob.
call method ob->m1
EXPORTING
i_x = p_x
i_y = p_y
IMPORTING
e_z = v_z.
format color 7.
write :/ 'Division is ',v_z.
write :/ 'End of program...'.
format color off.