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

本实践实现方法的结果与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清理对象内容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容