CLASS vehicle DEFINITION.
PUBLIC SECTION.
EVENTS: too_fast.
METHODS: accelerate, show_speed.
PRIVATE SECTION.
DATA speed TYPE i.
ENDCLASS.
CLASS vehicle IMPLEMENTATION.
METHOD accelerate.
IF speed >= 5.
RAISE EVENT too_fast.
ELSE.
speed = speed + 1.
ENDIF.
ENDMETHOD.
METHOD show_speed.
WRITE: 'Speed: ', speed, /.
ENDMETHOD.
ENDCLASS.
CLASS handler DEFINITION.
PUBLIC SECTION.
METHODS: handle_excess FOR EVENT too_fast OF vehicle.
ENDCLASS.
CLASS handler IMPLEMENTATION.
METHOD handle_excess.
WRITE: 'Speed can not be too fast', /.
ENDMETHOD.
ENDCLASS.
DATA: obj_vehicle TYPE REF TO vehicle,
obj_handler TYPE REF TO handler.
START-OF-SELECTION.
CREATE OBJECT: obj_vehicle,obj_handler.
SET HANDLER obj_handler->handle_excess FOR ALL INSTANCES.
DO 10 TIMES.
CALL METHOD obj_vehicle->accelerate.
CALL METHOD obj_vehicle->show_speed.
ENDDO.
学习笔记(二十六)
最新推荐文章于 2024-08-18 16:28:39 发布