zoukankan      html  css  js  c++  java
  • 事件

    *&---------------------------------------------------------------------*
    *& Report  ZTEST20131106_2
    *&
    *&---------------------------------------------------------------------*
    *&
    *&关于事件的实例
    *&---------------------------------------------------------------------*
    
    REPORT  ztest20131106_2.
    *----------------------------------------------------------------------*
    *       CLASS vehicle DEFINITION
    *----------------------------------------------------------------------*
    *
    *----------------------------------------------------------------------*
    CLASS vehicle DEFINITION INHERITING FROM object.  "定义类vehicle,这边是继承基类object.
      PUBLIC SECTION.
        EVENTS:too_fast.        "定义事件too_fast
        METHODS:accelerate,
                show_speed.
      PROTECTED SECTION.
        DATA speed TYPE i.
    ENDCLASS.                    "vehicle DEFINITION
    *----------------------------------------------------------------------*
    *       CLASS vehicle IMPLEMENTATION
    *----------------------------------------------------------------------*
    *
    *----------------------------------------------------------------------*
    CLASS vehicle IMPLEMENTATION. "方法的实现
      METHOD accelerate.
        speed = speed + 1.  
        IF speed > 5.
          RAISE EVENT too_fast. " 在方法accelerate中触发事件too_fast,静态事件需要通过静态方法中触发
          speed = 5.
    
        ENDIF.
      ENDMETHOD.                    "accelerate
      METHOD show_speed.
        WRITE: / 'Speed:',speed.
      ENDMETHOD.                    "show_speed
    ENDCLASS.                    "vehicle IMPLEMENTATION
    *----------------------------------------------------------------------*
    *       CLASS handler DEFINITION
    *----------------------------------------------------------------------*
    *
    *----------------------------------------------------------------------*
    CLASS handler DEFINITION.          "定义类handler
      PUBLIC SECTION.
        METHODS handle_excess "在handler类下定义事件too_fast的处理方法handle_excess ,FOR EVENT too_fast OF vehicle说明事件是在vehicle类下的
        FOR EVENT too_fast OF vehicle.
    ENDCLASS.                    "handler DEFINITION
    *----------------------------------------------------------------------*
    *       CLASS handler IMPLEMENTATION
    *----------------------------------------------------------------------*
    *
    *----------------------------------------------------------------------*
    CLASS handler IMPLEMENTATION. "方法的实现
      METHOD handle_excess.
        WRITE: / 'Speed can not be too fast..'.
    *          speed = 10.
      ENDMETHOD.                    "handle_excess
    ENDCLASS.                    "handler IMPLEMENTATION
    
    DATA: o_vehicle TYPE REF TO vehicle, "定义类的引用
          o_handle TYPE REF TO handler.
    
    START-OF-SELECTION.
      CREATE OBJECT:o_vehicle,o_handle. "创建类得实例
      SET HANDLER o_handle->handle_excess FOR ALL INSTANCES.  "注册事件处理方法,这边FOR ALL INSTANCES是为处理器注册所有可以触发该事件的实例,如
    
    果是for o_vehicle表示指定注册到o_vehicle下的事件。如果是静态事件则不需要for附加项
      DO 11 TIMES.
        CALL METHOD o_vehicle->accelerate.
        CALL METHOD o_vehicle->show_speed.
    
      ENDDO.
    View Code
  • 相关阅读:
    mysql 查询优化
    图解Java常用数据结构(一)
    mybatis 详解(五)------动态SQL
    Mybatis的ResultMap的使用
    java系统变慢的优化简略步骤
    mysql基本操作
    mysql数据库的优化 一
    tomcat的启动启动与关闭
    vueJs的简单入门以及基础语法
    Oracle常用命令-用户、表空间、赋权限、导入导出
  • 原文地址:https://www.cnblogs.com/caizjian/p/3433851.html
Copyright © 2011-2022 走看看