mengyuxin

Encapsulation

Apr 18th, 2021
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.49 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report ZMENG_ENCAP
  3. *&---------------------------------------------------------------------*
  4. *&  /sap_abap/sap_abap_encapsulation.html
  5. *&---------------------------------------------------------------------*
  6.  
  7. *封装是一种面向对象编程(OOP)概念,将数据和功能绑定在一起,操作数据,
  8. *并保持两者免受外部干扰和误用。数据封装导致了数据隐藏的重要OOP概念。
  9. *封装是捆绑数据和使用它们的函数的机制,数据抽象是一种仅暴露接口
  10. *并向用户隐藏实现细节的机制。
  11. *ABAP通过创建称为类的用户定义类型支持封装和数据隐藏的属性。
  12. *如前所述,类可以包含私有,受保护和公共成员。默认情况下,类中定义的所有项目都是私有的
  13.  
  14. REPORT zmeng_09_encap.
  15.  
  16. *以下程序包含一个接口inter_1。我们已经声明了属性和方法method1。
  17. *我们还定义了两个类,如Class1和Class2。
  18. *因此,我们必须在两个类实现中实现方法“method1”。
  19. *我们在不同的类中实现了不同的方法'method1'。
  20. *在start-of-selection中,我们为两个类创建了两个对象Object1和Object2。
  21. *然后,我们通过不同的对象调用该方法来获得在单独的类中声明的函数。
  22.  
  23. *接口inter_1。
  24. INTERFACE inter_1.
  25.   "属性和方法method1
  26.    DATA text1 TYPE char35.
  27.    METHODS method1.
  28. ENDINTERFACE.
  29.  
  30. *定义了两个类,如Class1和Class2。
  31. CLASS class1 DEFINITION.
  32.    PUBLIC SECTION.
  33.       INTERFACES inter_1.
  34. ENDCLASS.
  35.  
  36. CLASS class2 DEFINITION.
  37.    PUBLIC SECTION.
  38.       INTERFACES inter_1.
  39. ENDCLASS.
  40.  
  41. CLASS class1 IMPLEMENTATION.
  42.    METHOD inter_1~method1.
  43.       inter_1~text1 = 'Class 1 Interface method'.
  44.       WRITE / inter_1~text1.
  45.    ENDMETHOD.
  46. ENDCLASS.
  47.  
  48. CLASS class2 IMPLEMENTATION.
  49.    METHOD inter_1~method1.
  50.       inter_1~text1 = 'Class 2 Interface method'.
  51.       WRITE / inter_1~text1.
  52.    ENDMETHOD.
  53. ENDCLASS.
  54.  
  55. START-OF-SELECTION.
  56.    DATA:
  57.      object1 TYPE REF TO class1,
  58.      object2 TYPE REF TO class2.
  59.  
  60.    CREATE OBJECT: object1,
  61.                   object2.
  62.  
  63.    CALL METHOD: object1->inter_1~method1,
  64.                 object2->inter_1~method1.
  65.  
  66. *上面的代码产生以下输出:
  67. *
  68. *class 1 interface method
  69. *class 2 interface method
  70.  
Add Comment
Please, Sign In to add comment