ABAP
ABAP ऑब्जेक्ट्स
खोज…
वर्ग घोषणा
ABAP क्लासेस को ग्लोबली या लोकल घोषित किया जा सकता है। ABAP रिपॉजिटरी के भीतर किसी भी वस्तु द्वारा एक वैश्विक वर्ग का उपयोग किया जा सकता है। इसके विपरीत, एक स्थानीय वर्ग का उपयोग केवल उस दायरे में किया जा सकता है जिसे वह घोषित करता है।
CLASS lcl_abap_class DEFINITION.
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS lcl_abap_class IMPLEMENTATION.
ENDCLASS.
कंस्ट्रक्टर, विधियाँ
कक्षा कार्यान्वयन:
CLASS lcl_abap_class DEFINITION.
PUBLIC SECTION.
METHODS: constructor,
method1.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS: method2,
method3.
ENDCLASS.
CLASS lcl_abap_class IMPLEMENTATION.
METHOD constructor.
"Logic
ENDMETHOD.
METHOD method1.
"Logic
ENDMETHOD.
METHOD method2.
"Logic
method3( ).
ENDMETHOD.
METHOD method3.
"Logic
ENDMETHOD.
ENDCLASS.
विधि कॉल उदाहरण:
DATA lo_abap_class TYPE REF TO lcl_abap_class.
CREATE OBJECT lo_abap_class. "Constructor call
lo_abap_class->method1( ).
मापदंडों के साथ विधि (आयात करना, बदलना, निर्यात करना)
कक्षा कार्यान्वयन:
CLASS lcl_abap_class DEFINITION.
PRIVATE SECTION.
METHODS method1 IMPORTING iv_string TYPE string
CHANGING cv_string TYPE string
EXPORTING ev_string TYPE string.
ENDCLASS.
CLASS lcl_abap_class IMPLEMENTATION.
METHOD method1.
cv_string = iv_string.
ev_string = 'example'.
ENDMETHOD.
ENDCLASS.
विधि कॉल उदाहरण:
method1 (
EXPORTING iv_string = lv_string
IMPORTING ev_string = lv_string2
CHANGING cv_string = lv_string3
).
रिटर्निंग पैरामीटर के साथ विधि
कक्षा कार्यान्वयन:
CLASS lcl_abap_class DEFINITION.
PRIVATE SECTION.
METHODS method1 RETURNING VALUE(rv_string) TYPE string.
ENDCLASS.
CLASS lcl_abap_class IMPLEMENTATION.
METHOD method1.
rv_string = 'returned value'.
ENDMETHOD.
ENDCLASS.
विधि कॉल उदाहरण:
lv_string = method1( ).
ध्यान दें कि RETURNING साथ घोषित पैरामीटर केवल मूल्य द्वारा पारित किए जाते हैं।
वंशानुक्रम - परिभाषा
जानकारी
वंशानुक्रम आपको एक मौजूदा वर्ग से एक नया वर्ग प्राप्त करने की अनुमति देता है। आप इसके अलावा INHERITING FROM का उपयोग करके करते हैं
कक्षा उपवर्ग सुपर क्लास परिभाषा से इनहेरिट।
बयान। नया वर्ग उपवर्ग मौजूदा वर्ग के सभी घटकों को अधिग्रहित करता है। नए वर्ग को उस वर्ग का उपवर्ग कहा जाता है, जहाँ से इसे प्राप्त किया जाता है। मूल वर्ग को नए वर्ग का सुपरक्लास कहा जाता है। एक वर्ग में एक से अधिक प्रत्यक्ष उपवर्ग हो सकते हैं, लेकिन इसमें केवल एक प्रत्यक्ष सुपरक्लास हो सकता है।
कक्षा कार्यान्वयन
CLASS lcl_vehicle DEFINITION.
ENDCLASS.
CLASS lcl_vehicle IMPLEMENTATION.
ENDCLASS.
CLASS lcl_car DEFINITION INHERITING FROM lcl_vehicle.
ENDCLASS.
CLASS lcl_car IMPLEMENTATION.
ENDCLASS.
विरासत - सार और अंतिम तरीके और कक्षाएं
जानकारी
METHODS और CLASS कथनों की ABSTRACT और फाइनल जोड़ियाँ आपको सार और अंतिम विधियों या कक्षाओं को परिभाषित करने की अनुमति देती हैं।
एक अमूर्त विधि एक अमूर्त वर्ग में परिभाषित की जाती है और उस कक्षा में लागू नहीं की जा सकती। इसके बजाय, इसे कक्षा के एक उपवर्ग में लागू किया जाता है। अमूर्त वर्गों को तत्काल नहीं किया जा सकता है।
एक अंतिम विधि को उपवर्ग में पुनर्परिभाषित नहीं किया जा सकता है। अंतिम कक्षाओं में उपवर्ग नहीं हो सकते। वे एक विरासत पेड़ का निष्कर्ष निकालते हैं।
कक्षा कार्यान्वयन:
CLASS lcl_abstract DEFINITION ABSTRACT.
PUBLIC SECTION.
METHODS: abstract_method ABSTRACT,
final_method FINAL
normal_method.
ENDCLASS.
CLASS lcl_abstract IMPLEMENTATION.
METHOD final_method.
"This method can't be redefined in child class!
ENDMETHOD.
METHOD normal_method.
"Some logic
ENDMETHOD.
"We can't implement abstract_method here!
ENDCLASS.
CLASS lcl_abap_class DEFINITION INHERITING FROM lcl_abstract.
PUBLIC SECTION.
METHODS: abstract_method REDEFINITION,
abap_class_method.
ENDCLASS.
CLASS lcl_abap_class IMPLEMENTATION.
METHOD abstract_method.
"Abstract method implementation
ENDMETHOD.
METHOD abap_class_method.
"Logic
ENDMETHOD.
ENDCLASS.
विधि कॉल उदाहरण:
DATA lo_class TYPE REF TO lcl_abap_class.
CREATE OBJECT lo_class.
lo_class->abstract_method( ).
lo_class->normal_method( ).
lo_class->abap_class_method( ).
lo_class->final_method( ).