पृष्ठ का चयन

एबीएपी कार्यक्रम में कास्टिंग

by | जून 4, 2018 | एबीएपी कार्यक्रम

होम » एसएपी » ABAP » एबीएपी कार्यक्रम » एबीएपी कार्यक्रम में कास्टिंग

प्रस्तावना - यह पोस्ट का हिस्सा है एबीएपी कार्यक्रम श्रृंखला.

कक्षा a1 परिभाषा।
 सार्वजनिक खंड।
 डेटा: संख्या 1 प्रकार और मूल्य 100।
 तरीके: एम 1।
 अंत वर्ग।
 कक्षा a1 कार्यान्वयन।
 विधि एम1.
 लिखें: 'a1:', num1.
 अंतिम विधि।
 अंत वर्ग।
 कक्षा b1 परिभाषा a1 से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: एम 2, एम 1 पुनर्वितरण।
 अंत वर्ग।
 कक्षा बी1 कार्यान्वयन।
 विधि एम1.
 अंक 1 = अंक 1।
 लिखें: 'बी1:', num1.
 अंतिम विधि।
 विधि एम2.
 लिखें: 'एम2 इन क्लास बी1'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: एक प्रकार का संदर्भ a1.
 डेटा: b टाइप रेफ टू b1.
 *डेटा: c टाइप REF TO c1.
 ************************************************* *************** वस्तु बनाएँ ख।
 ए = बी।  "अपकास्टिंग कॉल मेथड a->m1( )।
 *कॉल विधि a->m2( )।  "हम सुपर क्लास रेफरी का उपयोग करके अपनी उप-वर्ग विधियों तक नहीं पहुंच सकते हैं।
 नई पंक्ति।
 बी? = ए।  "डाउन कास्टिंग कॉल विधि b->m1()।
 नई पंक्ति।
 कॉल विधि b->m2( )।
 ************************************************* *************** "त्रुटि नल रेफरी OBJECT a.
 बी? = ए।  "डाउन कास्टिंग अभी भी इसकी डंपिंग कॉल मेथोड बी-> एम 1 ()।
 ************************************************* *************** ऑब्जेक्ट बनाएं ए।
 कोशिश करो।
 बी? = ए।  "आपने 'नल' ऑब्जेक्ट संदर्भ डंप कैच cx_sy_move_cast_error का उपयोग करने का प्रयास किया।
 कॉल विधि b->m1( )।
 एंडट्री।
 ************************************************* *************** ऑब्जेक्ट बनाएं ए।
 वस्तु बनाएँ ख।
 कोशिश करो।
 बी? = ए।
 कैच cx_sy_move_cast_error.
 कॉल विधि b->m1( )।
 कॉल विधि बी-> एम 2 ()।
 एंडट्री।
 कक्षा lcl_shape परिभाषा।
 सार्वजनिक खंड।
 तरीके ड्रा।
 अंत वर्ग।
 कक्षा lcl_circle परिभाषा lcl_shape से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: REDEFINITION ड्रा करें, कैल्क_एरिया।
 अंत वर्ग।
 कक्षा lcl_shape कार्यान्वयन।
 विधि ड्रा।
 लिखें:/'किसी भी आकार को खींचना'।
 अंतिम विधि।
 अंत वर्ग।
 कक्षा lcl_circle कार्यान्वयन।
 विधि ड्रा।
 लिखें:/'विशिष्ट आकृति बनाना: वृत्त'।
 अंतिम विधि।
 विधि कैल्क_एरिया।
 लिखें:/'Crcle का क्षेत्रफल = 2iiR'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: o_cir टाइप रेफ टू lcl_circle।
 ऑब्जेक्ट बनाएं
 कॉल विधि o_cir-> ड्रा ()।  "उपवर्ग ड्रा() विधि कॉल विधि o_cir->calc_area() कॉल करें।
 यूलाइन।
 "------------संकीर्ण कास्ट(अपकास्ट)---------------" डेटा: o_shp टाइप रेफ टू lcl_shape।
 ओ_एसएचपी = ओ_सीआईआर।  "संकीर्ण कास्ट (अपकास्ट) कॉल विधि o_shp-> ड्रा ()।  "उप वर्ग ड्रा () विधि को कॉल करें" कॉल विधि o_shp->calc_area() ।  "संकलन त्रुटि ULINE.
 "---------- कास्ट (डाउनकास्ट) को चौड़ा करना -----------" डेटा: o_cir1 टाइप रेफ टू lcl_circle।
 " o_cir1 = o_shp.  "शिकायत त्रुटि o_cir1? = o_shp।  "कास्ट (डाउनकास्ट) को चौड़ा करना कॉल विधि o_cir1-> ड्रा ()।  "उपवर्ग ड्रा() विधि कॉल विधि o_cir1->calc_area() कॉल करें।
 कक्षा a1 परिभाषा।
 सार्वजनिक खंड।
 डेटा: संख्या 1 प्रकार और मूल्य 100।
 तरीके: एम 1।
 अंत वर्ग।
 कक्षा a1 कार्यान्वयन।
 विधि एम1.
 लिखें: 'a1:', num1.
 अंतिम विधि।
 अंत वर्ग।
 कक्षा b1 परिभाषा a1 से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: एम 2, एम 1 पुनर्वितरण।
 अंत वर्ग।
 कक्षा बी1 कार्यान्वयन।
 विधि एम1.
 अंक 1 = अंक 1।
 लिखें: 'बी1:', num1.
 अंतिम विधि।
 विधि एम2.
 लिखें: 'एम2 इन क्लास बी1'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: पैरेंट टाइप रेफरी टू a1.
 डेटा: चाइल्ड टाइप रेफ टू b1.
 *डेटा: c टाइप REF TO c1.
 ************************************************* *************** ऑब्जेक्ट चाइल्ड बनाएं।
 माता-पिता = बच्चा।  "अपकास्टिंग कॉल विधि माता-पिता-> एम 1 ()।
 कॉल विधि बच्चे-> एम 1 ()।
 कॉल विधि बच्चे-> एम 2 ()।
 *कॉल विधि a->m2( )।  "हम सुपर क्लास रेफरी का उपयोग करके अपनी उप-वर्ग विधियों तक नहीं पहुंच सकते हैं।
 नई पंक्ति।
 बच्चा? = माता-पिता।  "डाउन कास्टिंग कॉल विधि बच्चे-> एम 1 ()।
 नई पंक्ति।
 कॉल विधि बच्चे-> एम 2 ()।
 ************************************************* **************** *" त्रुटि नल रेफरी * OBJECT बनाएं a.
 * बी? = ए।  "डाउन कास्टिंग अभी भी इसकी दे रही है डंप * कॉल विधि बी-> एम 1 ()।
 ************************************************* **************** * वस्तु बनाएँ a.
 कोशिश करो।
 बी? = ए।  "आपने 'नल' ऑब्जेक्ट संदर्भ डंप कैच cx_sy_move_cast_error का उपयोग करने का प्रयास किया।
 कॉल विधि b->m1( )।
 एंडट्री।
 ************************************************* **************** * वस्तु बनाएँ a.
 वस्तु बनाएँ ख।
 कोशिश करो।
 बी? = ए।
 कैच cx_sy_move_cast_error.
 कॉल विधि b->m1( )।
 कॉल विधि बी-> एम 2 ()।
 एंडट्री।
 ******** अद्वितीय मान****** डेटा: lv_string TYPE string, lv_string2 TYPE string, lv_string_ final TYPE string।
 प्रकार: ty_data का प्रारंभ, प्रमाणन प्रकार c, ty_data का अंत।
 डेटा: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 ty_data की टाइप टेबल, lt_user ty_data की टाइप टेबल।
 lv_string = 'ए, बी, सी, ए'।
 lv_string2 = 'डी, बी, सी, ए'।
 स्प्लिट lv_string एटी ',' टेबल में lt_user.
 स्प्लिट lv_string2 एटी ',' टेबल में lt_user2.
 lt_user2 असाइनमेंट फील्ड-सिंबल पर लूप ( )
 सम्मिलित करें तालिका में lt_user.
 एंडलूप।
 प्रमाणीकरण के आधार पर lt_user को सॉर्ट करें।
 lt_user COMPARING auth से आसन्न डुप्लिकेट हटाएं।
 अगर sy-subrc = 0.
 lt_user असाइन करने वाले FIELD-SYMBOL पर लूप ( )
 अगर lv_string_ final प्रारंभिक है।
 lv_string_ final = -प्रमाण.
 अन्यथा।
 CONCATENATE lv_string_ final -ऑथ में lv_string_ final ',' द्वारा अलग किया गया।
 अगर अंत।
 एंडलूप।
 अगर अंत।

 

लेखक

0 टिप्पणियाँ

एक टिप्पणी भेजें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड इस तरह चिह्नित हैं *

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.

लेखक