1.定义全局类和全局接口
事务代码:se24(类编辑器)
2.类中的组件:
实例组件(实例components):参照类创建对象时,内存中存在的项目。每当创建一个对象时,
都会进行初始化操作。即非共享的
静态组件:当使用创建类语句creat object,直到程序结束都会一直存在于
内存当中一类类存在的项目。这类组件即使不创建对象,如果已经存在于内存当中
就可以直接使用了
3.声明属性方法:
实例属性: DATA L data type c.
静态属性: CLASS-DATA A DATA TYPE I.
4.方法:
实例方法、静态方法、special method(用的较少)
实例方法可以访问所有的属性,包括静态属性,声明方式为methods
静态方法只能访问静态属性,声明方式为class-methods
5.访问对象组件
访问实例属性:ref->attr
访问实例方法:call method ref->method
访问静态属性:ref=>attr
访问静态方法:ref=>method
static类型的属性和方法,不用创建对象也可以使用静态符号=>访问极其修改其属性
在子类中也可以使用超级类继承的属性和方法。
6.通过=号和move语句可以将一个对象复制给另一个对象,前提是这两个对象参照类型一样
即参照同一个类创建的
7.方法重定义
methods:create redefinition.
obj1 = obj2;
move obj2 to obj1.
*&---------------------------------------------------------------------*
*& Report ZOO_ZF1
*&
*&---------------------------------------------------------------------*
*&
*&练习对象的创建与使用
*&---------------------------------------------------------------------*
REPORT zoo_zf1.
"声明一个c1的类,其中包含一个公共方法meth
*----------------------------------------------------------------------*
* CLASS c1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 DEFINITION.
PUBLIC SECTION.
METHODS meth.
ENDCLASS. "c1 DEFINITION
*----------------------------------------------------------------------*
* CLASS c1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.
METHOD meth.
WRITE / 'MY FIRST CLASS'.
ENDMETHOD. "c1
ENDCLASS. "c1 IMPLEMENTATION
*创建一个c1类的对象
DATA: go_cref TYPE REF TO c1.
START-OF-SELECTION.
CREATE OBJECT go_cref.
CALL METHOD go_cref->meth.