ABAP 面向对象程序设计 (01) - 类和对象

SAP 公司于 1999 年发布了面向对象的 ABAP,但在 ABAP 开发者中并不普及,实际开发中用的更多的是面向过程的开发方式。本文简单介绍 ABAP 面向对象开发的过程,重点是如下 ABAP 的语法:

  • 如何定义一个类
  • 如何创建对象的实例 (object instance)
  • 如何调用对象的方法

ABAP 支持 local class 和 global class , local class 通过事务码 SE38 / SE80 创建,只能在本程序中使用;global class 通过事务码 SE24 来创建,在所有的程序中都能使用。

ABAP 面向对象,从概念和机制来说,与其它编程语言并没有太大区别,主要是语法 (syntax) 的不同。本文在示例的时候,特意引入 Java 代码进行说明。

假设我们要定义一个 Book 类,Book 类有 Title、Author、Publisher 和 Price 四个属性,Java 代码如下:

类和对象初步

在 ABAP 语言中,定义一个类,需要包含定义 (definition) 和实现 (implementation) 两部分,定义部分声明该类包含的 attributes, methods 和 constructors; 在实现部分来实现 constructor 和 method 的逻辑。同样的功能,在 ABAP 中代码如下:

通过 DATA 定义的属性为实例属性,ABAP 中使用 -> 符号调用对象实例的属性或方法。接下来,创建两个 Book 的实例,并且打印书籍的信息。

构造方法

可以使用构造方法 (constructor),实现在实例化的时候传入书籍的这 4 个属性,Java 代码如下:

通过构造方法,创建对象实例的代码更加简洁。将 4 个属性变更为 private后,外部将不能访问这些属性,对允许外部修改的属性,比如 price 专门提供了 setPrice() 方法来修改。使用了 constructor 的 ABAP 类代码如下:

ABAP 类和对象语法要点

  • 完整的 class 代码包含定义 (definition) 和实现 (implementation) 两部分;
  • 在声明部分,public section 必须在 private section 前面;
  • 构造函数 (constructor) 名称始终为 constructor,而其他主流语言的构造函数一般与与类名相同。

源码

本篇的代码放在 github 上。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值