学习笔记(二十六)

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值