编程技术分享平台

网站首页 > 技术教程 正文

ABAP 面向对象(OO) 一(abap面向对象程序设计)

xnh888 2024-11-04 14:55:29 技术教程 26 ℃ 0 评论

从SAP R/3 4.0版本开始,ABAP就引入了面向对象的开发概念。

1.ABAP语言的发展

1.宏编译器
2.ABAP语言出现-面向过程
3.ABAP语言-面向对象(Object-oriented)
4.ABAP对象是ABAP的扩展,集合了Java,C++,Smalltalk等语言。

2.面向对象解决方法中,重点放在了对现实生活中的对象结构化或抽象化。

1.属性(Attributes):对象的属性及特征
2.方法(Method):定义对象的行为

3.引入类的优点

1.可以重复利用代码(传统ABAP->重用部分)
2.可以封装数据

4.面向对象开发的特点

1. 抽象(Abstraction)
实现客观世界实体的模块化
2. 封装(Encapsulation)
就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
3. 继承(Inheritance)
它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展
4. 多态(Polymorphism)
允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

5.类与对象

1.类(CLASS): 是创建对象的模板。
2.对象(OBJECT): 对象是指商品/物体/对象/目的,是类的实例。
3.根据类创建对象的过程成为实例化,根据类创建的对象为实例(Instance)。

6.类的区分

1.全局类(Global):使用事务代码SE24
     存储在类池中(Class Library in the Repository), 所有ABAP程序都可以对其进行访问。
2.本地类(Local)
     在程序中定义,只有该程序可以使用。

7.程序中创建类的规则

1.定义类的构成项目(属性、方法、事件)
  CLASS <class> DEFINITION.
        要素声明
         所有项目都需要定义在三个访问区域之一中
  ENDCLASS.

2. 实现类的方法
   CLASS <class> IMPLEMENTATION.
  
   ENDCLASS.

8.三个访问区域

1.Public Section:公有部分内部可见,外部可见,PUBLIC部分的组件,构成类与用户的接口。
2.Protected Section:保护部分 内部可见,继承可见,外部不可见,PROTECTED部分的组件,构成继承类之间的接口。
3.Private Section.:私有部分内部可见,继承不可见,外部不可见。

example 1 (类声明 对象创建 属性 方法访问)

CLASS LO_PEOPLE DEFINITION . "类的声明
*公有区域
  PUBLIC SECTION.
*实例属性
    DATA GV_VALUE TYPE C LENGTH 10.
* 静态属性
 CLASS-DATA GV_STATIC TYPE C LENGTH 10.
*实例方法
    METHODS METH.
* 静态方法
 CLASS-METHODS METH_STATIC.  
* 保护区域
 PROTECTED SECTION.
* 私有区域
 PRIVATE SECTION.
ENDCLASS .



CLASS LO_PEOPLE   IMPLEMENTATION. "实现类中的方法
  METHOD METH.
*    类的行为(方法的功能)
  ENDMETHOD.
  
*  静态方法实现
  METHOD METH_STATIC.
    WRITE: / GV_STATIC.
  ENDMETHOD.
ENDCLASS .


START-OF-SELECTION.
*类对象的声明
  DATA LO_PEOPLE_OBJECT TYPE REF TO LO_PEOPLE.
*  类访问静态属性 类=>静态属性
  WRITE: / LO_PEOPLE=>GV_STATIC.
*  访问静态方法 采用 call method 类名称=>方法名
  CALL METHOD LO_PEOPLE=>METH_STATIC.
*对象的实例化
  CREATE OBJECT LO_PEOPLE_OBJECT.
*对象创建完成后,该对象就可以访问公有部分属性,方法等。
  WRITE:/  LO_PEOPLE_OBJECT->GV_VALUE . "访问实例属性
  CALL METHOD LO_PEOPLE_OBJECT->METH. "访问方法 采用 call method 对象->方法名。


注:此处定义的类对象属于外部类,所以只能访问公有部分的属性和方法,不能访问保护区域、私有区域属性和方法。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表