ABAP面向对象(oo)的基本知识

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.


事件的局部创建  

事件也分三种:公有,保护,私有,并且事件的参数不许入值传递

事件的定义->触发->注册

 

 

原文地址:https://www.cnblogs.com/xggnb/p/11723197.html