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 ) .
  • 相关阅读:
    我的有道难题算法-双倍超立方数
    终于获取了SharePoint.OpenDocument对象打开的Word对象
    Eclipse下的项目管理插件介绍
    初识 sqlite 与 content provider 学习笔记
    android 官方文档中的一些错误收集
    android TraceView (图形化性能测试工具)使用入门笔记
    Texttospeech 入门与进阶学习笔记(android)
    Intent进阶 和 Intentfilter 学习笔记
    android UI设计属性中英对照表(未修订)
    android学习笔记7天打造一个简易网络Mp3播放器
  • 原文地址:https://www.cnblogs.com/HARU/p/7998900.html
Copyright © 2011-2022 走看看