OO基础
面向对象(OO)
对象 :包含了数据并且可以提供服务的程序代码。
属性:对象中的“数据”部分由属性定义
方法:对象中的“提供服务”
对象的属性必须通过对象提供的方法才能被外部用户操作。
三大特征:封装,继承,多态
类的创建分为“全局定义”和“局部定义”
- 全局定义在se24中进行设定。
- 局部定义直接通过se38进行代码的编写。
全局定义
1.首先在se24创建已zcl_***开头的类程序名
2.定义OO中的“成员”(属性,方法,事件)
级别:均分为实例和静态两种(实例的需要创建相关的实例才可以被调用)
可见性:公有:可以被所有对象调用,
保护:只能类本身和类的继承类可调用,
私有:只能类本身可调用。
对相关内容进行参数设置。
局部定义
类的局部创建
parameters p_02 type string."定义一个输入的选择屏幕data e_01 type string.
class zjj_mxdx02_01 definition."类的定义
public section."公有部分
methods:zjj_method_01 "方法1(methods为实例,class-methods为静态)
importing poo_01 type string
exporting eoo_01 type string.
methods zjj_method_02. "方法2
private section."私有部分
methods:zjj_method_03
importing poo_03 type string
exporting eoo_03 type string.
endclass.
class zjj_mxdx02_01 implementation."实施
method zjj_method_01.
eoo_01 = poo_01+1(3).
endmethod.
method zjj_method_02.
data oo_02 type ref to zjj_mxdx02_01.
create object oo_02.
call method oo_02->zjj_method_03
exporting
poo_03 = p_02
importing
eoo_03 = e_01.
endmethod.
method zjj_method_03.
eoo_03 = poo_03.
endmethod.
endclass.
start-of-selection.
data oo_01 type ref to zjj_mxdx02_01. "因为定义的为实例,则必须定义实例
create object oo_01."创建实例
call method oo_01->zjj_method_01 "调用方法
exporting
poo_01 = p_02
importing
eoo_01 = e_01.
* data oo_03 type ref to zjj_mxdx02_01."所创建得可见性为私有的,无法调用
* create object oo_03.
* call method oo_03->zjj_method_03
* exporting
* poo_03 = p_02
* importing
* eoo_03 = e_01.
WRITE:p_01,e_01.
事件的局部创建
事件也分三种:公有,保护,私有,并且事件的参数不许入值传递
事件的定义->触发->注册