007-ABAP学习(对象)

在SAP R/3 4.0之前,abap完全是面向过程的语言。在这之后才开始慢慢引入面向对象这种技术到系统中,面向对象可以简化系统设计,实现对象封装,继承并使程序易于维护。

面向对象的概念

面向对象的程序设计一般具有如下的特性:封装,继承,多态。

ABAP Objects

ABAP Objects这个概念在4.0之后有双层含义。一方面代表ABAP的运行时的环境,一方面代表新增的面向对象的部分。ABAP的面向对象部分是基于java,C++的模型改来的,并与DCOM,CORBA等外部对象的接口相互兼容。

类和对象

系统中的类有局部和全局类之分,具体的表现就是作用范围不同。全局类由Class Builder开发,保存在系统类库程序(Class Pool)可供所有程序使用。局部类一般只应用在本程序。

类的声明及实现

声明语句:CLASS/ENDCLASS进行定义。声明部分包括类成员(属性,方法,事件)。实现部分则是方法的具体实现代码。同JAVA一样,类成员也有不同的可见性。

代码部分可见性
public section公有,可以被所有对象使用,包括类方法及子类
protected section保护,只能被定义的类成员及其派生类使用
private section私有,只能被类本身的方法使用
  • 属性:描绘类的状态,使用DATAorCLASS-DATA定义。class-data用于定义静态类型。定义属性的语句中增加read-only关键字,则该属性不能被类外部读取但可以被类内部方法所修改。
    CONSTANT语句可用来定义类常量。常量创建后不能在编译和运行期内修改,必须在定义时候指定值,性质类似于静态属性。
    TYPES语句在类中定i数据类型,也相当与静态属性,方法普通的abap程序类似,但是在使用遵循类定义的可见性原则。

  • 方法:需要在类的声明和实现两个部分定义。声明部分说明方方法的参数接口,实现部分定义具体功能。定义的语句为METHOD/ENDMETHOD.

类定义代码示例:

REPORT  Z_CLASS_DEFINITION.

  class vehicle definition.
    public section.
      class-data class_name(10) type c value 'Vehicle'.
      methods: accelerate,
             show_speed.
    protected section.
      data speed type i .
  endclass.

  class vehicle implementation.
     method accelerate.
        speed = speed + 1.
     endmethod.
     method show_speed.
        write: / 'spedd is :', speed.
     endmethod.
  endclass.

  data: o_vehicle type ref to vehicle,
     count type i .
  start-of-selection.
  create object o_vehicle.
  DO 5 TIMES.
      call method o_vehicle->accelerate.
  ENDDO.
  call method o_vehicle->show_speed.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值