zoukankan      html  css  js  c++  java
  • ABAP------>OO 拔草

    *&---------------------------------------------------------------------*
    *& Report  Y_JAMES_OO_DAY3
    *&
    *&---------------------------------------------------------------------*
    *&Use a example to show what the hell OO!!!!!
    *&---------------------------------------------------------------------*
    
    REPORT Y_JAMES_OO_DAY3.
    
    CLASS Emp DEFINITION.
    
      PUBLIC SECTION.
      DATA:
        Empno  TYPE n,
        Ename  TYPE char10,
        Enums  TYPE i,
        Eprice TYPE i.
    
      METHODS:
        Calculatepay RETURNING VALUE(ipay) TYPE i,
        Displaypay   IMPORTING VALUE(ipay) TYPE i.
    
    ENDCLASS.
    
    CLASS Emp IMPLEMENTATION .
    
      METHOD Calculatepay.
        ipay = Enums * Eprice.
      ENDMETHOD.
    
      METHOD Displaypay.
        WRITE: / 'The pay for employee',
                  Empno,Ename,
                  'is',
                  ipay,/.
      ENDMETHOD.
    
    ENDCLASS.
    
    CLASS SpecialWorker DEFINITION INHERITING FROM Emp.
    
      PUBLIC SECTION.
      EVENTS: LazyEmployee.
    
      DATA:
        Enums_extra TYPE i.
      METHODS:
      Calculatepay REDEFINITION.
    
     ENDCLASS.
    
    CLASS SpecialWorker IMPLEMENTATION.
    
      METHOD Calculatepay.
        ipay = ( Enums       * Eprice     ) +
               ( Enums_extra * Eprice * 2 ) .
    
        IF Enums <= 100.
    
          WRITE: ename.
          RAISE EVENT LazyEmployee.
    
        ENDIF.
    
      ENDMETHOD.
    
    ENDCLASS.
    
    *CLASS FireWorker DEFINITION.
    CLASS FireWorker  DEFINITION.
    
      PUBLIC SECTION.
      METHODS YouAreFired
      FOR EVENT LazyEmployee of Specialworker.
    
    ENDCLASS.
    
    CLASS FireWorker IMPLEMENTATION.
      METHOD YouAreFired.
        WRITE: / 'You are so lazy, because of produced less than 100 units,so you are be fired'.
      ENDMETHOD.
    ENDCLASS.
    
    DATA:MyPay TYPE i.
    
    START-OF-SELECTION.
    *-----------------------------------------------------------------------
    * Using the Employee named James to show you how to write
    *-----------------------------------------------------------------------
    DATA: Go_James TYPE REF TO Emp,
          Go_Scott TYPE REF TO specialworker,
          Go_Junji TYPE REF TO specialworker,
          Fire_Jun TYPE REF TO fireworker.
    
    CREATE OBJECT Go_james.
    go_james->empno       = '111'             .
    go_james->ename       = 'James'           .
    go_james->enums       = '500'             .
    go_james->eprice      = '3'               .
    mypay = go_james->calculatepay( )         .
    CALL METHOD go_james->displaypay( mypay ) .
    
    *CLEAR mypay.
    CREATE OBJECT go_scott.
    go_scott->empno       = '222'             .
    go_scott->ename       = 'Scott'           .
    go_scott->enums       = '500'             .
    go_scott->eprice      = '3'               .
    go_scott->enums_extra = '50'              .
    mypay = go_scott->calculatepay( )         .
    CALL METHOD go_scott->displaypay( mypay ) .
    
    *CLEAR mypay.
    CREATE OBJECT: go_junji,
                   fire_jun.
    
    SET HANDLER fire_jun->youarefired FOR go_junji.
    go_junji->empno       = '333'             .
    go_junji->ename       = 'Jubjie'          .
    go_junji->enums       = '80'             .
    go_junji->eprice      = '3'               .
    go_junji->enums_extra = '0'               .
    
    *CLEAR mypay.
    mypay = go_junji->calculatepay( )         .
    CALL METHOD go_junji->displaypay( mypay ) .
  • 相关阅读:
    List,Set,Map初级学习
    String,StringBuffer,StringBuilder 的使用
    activity跳转
    JSON与List之间的转换
    子线程更新UI
    数据库查询关键字显示所有结果
    Java数据类型转换1
    git 操作
    MySql导出表结构
    springBoot双数据源配置
  • 原文地址:https://www.cnblogs.com/HARU/p/7998900.html
Copyright © 2011-2022 走看看