*----------------------------------------------------------------------*
* CLASS callobj DEFINITION 創建類
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj DEFINITION.
PUBLIC SECTION."定義公共類成員
CLASS-DATA:para(30) TYPE c VALUE 'The static class parameter!'."定義靜態變量
DATA count TYPE i."定義該類中公用全局變量
METHODS:showdata1,
showdata2.
PRIVATE SECTION."定義該類中私有成員,所定義變量或方法只能在該類內部使用
METHODS:showdata3.
ENDCLASS. "callobj DEFINITION
*----------------------------------------------------------------------*
* CLASS callobj IMPLEMENTATION 定義類方法實現行為
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj IMPLEMENTATION.
METHOD showdata1.
WRITE:'Hello SAP!'.
ENDMETHOD. "showdata1
METHOD showdata2.
count = 1.
WRITE count.
CALL METHOD showdata3. "在類內部調用私有方法
ENDMETHOD. "showdata2
METHOD showdata3.
WRITE: / 'The Private Method!'.
ENDMETHOD. "showdata3
ENDCLASS. "callobj IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS callobj2 DEFINITION 定義第二個類,其成員對象為一靜態方法
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj2 DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:call_static_class.
ENDCLASS. "callobj2 DEFINITION
*----------------------------------------------------------------------*
* CLASS callobj2 IMPLEMENTATION 定義第二個類方法
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS callobj2 IMPLEMENTATION.
METHOD call_static_class.
WRITE:/ callobj=>para."直接飲用其他類中的靜態變量
ENDMETHOD. "call_static_class
ENDCLASS. "callobj2 IMPLEMENTATION
DATA obj TYPE REF TO callobj."引用參照類聲明變量
DATA:methname TYPE string."定義方法名變量
START-OF-SELECTION.
CREATE OBJECT obj."創建類實例化對象
methname = 'SHOWDATA2'."為變量賦值方法名
CALL METHOD:obj->showdata1,"調用類方法
obj->(methname)."通過變量調用類方法
CALL METHOD:callobj2=>call_static_class."無需實例化類對象,直接引用靜態方法
*********CALL METHOD:obj->showdata3."類的私有方法不允許外部調用
*********若使用該語句,系統將報錯:You cannot access private method 'SHOWDATA3'.not allowed