美文网首页
06面向对象编程,A1.2-员工管理(公共类)

06面向对象编程,A1.2-员工管理(公共类)

作者: 真言真语SAP | 来源:发表于2018-02-25 14:50 被阅读0次

    本实践实现方法的结果与6A1一样,都是使用OOP技术获得和输出员工信息;而与A61不一样的地方是,类的定义和实现,实践6A1是在程序编辑器中直接定义和实现的,而在本实践中,将通过类构建器(SE24)定义和实现类后,在程序编辑器中调用。

    No 部分 说明 事务代码
    1 类的创建与实现 通过类构建器进行类的定义和实现 SE24
    2 程序声明 声明本程序执行后是否包含标准标题,数据输出宽度和每页的行数量为多少 SE38
    3 对象定义 通过定义变量或常量或要使用的表结构等,以在程序执行过程中计算和存储临时值
    4 数据输出 创建对象实例并调用方法,并按需求进行数据的输出

    1、类的创建与实现

    1.1、类的创建

    输入事务代码SE24,将显示类构建器的初始界面如图6-1,在此界面中输入类的名称后,点击创建按钮,显示如图6-2的对象类型选择界面,在其中选择“类”并点击对勾,则弹出如图6-3所示的类的属性界面,按图输入和维护后点击保存,由此将创建一个类。

    图6- 1 类构建初始界面 图6- 2 对象类型选择 图6- 3 类的属性维护
    1.2、类的实现

    在显示的类维护界面中,切换到“属性”页签,参考图6-4所示增加2个属性并设置好其属性的级别、可见性以及类型。

    图6- 4 类的属性定义

    切换到“方法”页签,并参考图6-5所示增加方法及设置级别、可见性和描述,然后可选择其中一个方法,点击“参数”按钮,参考图6-6所示维护此方法的返回参数;还可继续点击“异常”按钮维护方法的异常抛出(如图6-7所示);以及通过“源代码”维护方法的实现代码(如图6-8所示)。

    图6- 5 定义类的方法 图6- 6 定义方法的参数 图6- 7 方法中的异常 图6- 8 方法的实现代码

    可参考下表,对各方法的参数、异常和实现代码进行维护。

    完成后激活退出类构建器。

    2、程序声明

    通过程序编辑器(SE38)建立程序,其中程序声明部分代码如下:

    REPORT zu0601_employee_method_v2.
    

    REPORT 程序名称,是对程序的定义,表明此程序代码不是FUNCTION MODULE(功能函数),不是CLASS(类),而是可以执行的可以输出数据的此程序;这是对程序最基本的声明,且必须存在的部分。

    3、对象定义

    对象定义部分代码如下:

    ******对象定义*****
    DATA: cl_ref        TYPE REF TO zu06_employee,
          out_emp_id    TYPE ztemployee-employeeid,
          out_emp_sex   TYPE ztemployee-sex,
          out_emp_newid TYPE ztemployee-employeeid,
          writestr(20)  TYPE c.
    
    PARAMETERS p_emp_id TYPE ztemployee-employeeid.
    

    如上对象定义部分的代码跟实践6A1类似,但也有差异:其中cl_ref所参考的类是步骤1中所建立和实现的类zu06_employee,而不是通过参考本地类;其他变量和选择字段则同实践6A1。

    4、数据输出

    因为对象cl_ref所参考的类在步骤1中已定义和实现完成,因此不需要在程序中进行定义和实现,因此在START-OF-SELECTION事件中,直接创建对象实例并调用方法,获得和输出数据。

    *&----------------------------------------------------------------------*
    *& START-OF-SELECTION
    *&----------------------------------------------------------------------*
    START-OF-SELECTION.
      CREATE OBJECT cl_ref. "创建对象
      CALL METHOD cl_ref->get_emp_byid              "调用方法的方式1
        EXPORTING
          IM_EMP_ID = p_emp_id.
      CALL METHOD cl_ref->get_emp_sex
        RECEIVING
          re_emp_sex = out_emp_sex
        EXCEPTIONS
          no_data    = 1.
    **  cl_ref->get_emp_byid( p_emp_id ).           "调用方法的方式2
    **  out_emp_sex = cl_ref->get_emp_sex( ).
      IF sy-subrc <> 0.
        writestr = '没有获得性别'.
      ELSE.
        writestr = out_emp_sex.
      ENDIF.
      WRITE:/5 '输入员工ID', 20 p_emp_id,
            /5 '输入员工性别:',20 writestr.
      SKIP.
    
      out_emp_id = cl_ref->get_emp_lastid( ).
      out_emp_sex = cl_ref->get_emp_sex( ).
      WRITE:/5 '最后员工ID', 20 out_emp_id,
            /5 '最后员工性别:',20 out_emp_sex.
      SKIP.
    
      cl_ref->show_emp_maxid( ).
      out_emp_newid = cl_ref->set_emp_newid( ).
      WRITE:/5 '最新员工ID:',20 out_emp_newid.
    
      CLEAR cl_ref.
    

    在如上代码中:
    首先通过CREATE创建对象的实例;
    然后再通过CALL METHOD语句调用方法获得相应数据或执行相应语句,并根据获得的数据进行处理;
    最后通过语句CLEAR清理对象内容。

    相关文章

      网友评论

          本文标题:06面向对象编程,A1.2-员工管理(公共类)

          本文链接:https://www.haomeiwen.com/subject/rijrxftx.html