ముందుమాట – ఈ పోస్ట్ లో భాగం ABAP కార్యక్రమాలు సిరీస్.
క్లాస్ a1 నిర్వచనం. పబ్లిక్ విభాగం. డేటా: సంఖ్య 1 రకం మరియు విలువ 100. పద్ధతులు:m1. ముగింపు తరగతి. క్లాస్ a1 అమలు. పద్ధతి m1. వ్రాయండి: 'a1:',num1. ముగింపు పద్ధతి. ముగింపు తరగతి. క్లాస్ b1 నిర్వచనం a1 నుండి వారసత్వం. పబ్లిక్ విభాగం. పద్ధతులు:m2, m1 పునర్నిర్వచనం. ముగింపు తరగతి. క్లాస్ బి1 అమలు. పద్ధతి m1. num1 = num1 . వ్రాయండి: 'b1:',num1. ముగింపు పద్ధతి. పద్ధతి m2. వ్రాయండి: 'తరగతి b2లో M1'. ముగింపు పద్ధతి. ముగింపు తరగతి. ఎంపిక ప్రారంభం. డేటా: a1కి ఒక రకం రెఫ్. డేటా: b1ని సూచించండి. *డేటా: c టైప్ REF TO c1. ******************************************************* ************** వస్తువును సృష్టించండి బి. a = బి. "అప్కాస్టింగ్ కాల్ మెథడ్ a->m1( ). * కాల్ పద్ధతి a->m2( ). "మేము సూపర్ క్లాస్ రెఫరెన్స్ ఉపయోగించి స్వంత సబ్ క్లాస్ పద్ధతులను యాక్సెస్ చేయలేము. కొత్త వాక్యం. b ?= a. " డౌన్ కాస్టింగ్ కాల్ మెథడ్ b->m1( ). కొత్త వాక్యం. కాల్ మెథడ్ b->m2( ). ******************************************************* *************** " లోపం శూన్య ref క్రియేట్ OBJECT a. b ?= a. "డౌన్ కాస్టింగ్ ఇప్పటికీ డంప్ కాల్ మెథడ్ b->m1( ). ******************************************************* *************** వస్తువును సృష్టించండి a. ప్రయత్నించండి. b ?= a. "మీరు 'NULL' ఆబ్జెక్ట్ రిఫరెన్స్ డంప్ని ఉపయోగించడానికి ప్రయత్నించారు CATCH cx_sy_move_cast_error. కాల్ మెథడ్ b->m1( ). ENDTRY. ******************************************************* *************** వస్తువును సృష్టించండి a. వస్తువును సృష్టించండి బి. ప్రయత్నించండి. b ?= a. CATCH cx_sy_move_cast_error. కాల్ మెథడ్ b->m1( ). కాల్ మెథడ్ b->m2( ). ENDTRY. CLASS lcl_shape నిర్వచనం. పబ్లిక్ విభాగం. మెథడ్స్ డ్రా. ముగింపు తరగతి. Lcl_shape నుండి CLASS lcl_circle నిర్వచనం. పబ్లిక్ విభాగం. పద్ధతులు: పునర్నిర్వచనం, calc_area గీయండి. ముగింపు తరగతి. CLASS lcl_shape IMPLEMENTATION. మెథడ్ డ్రా. వ్రాయండి :/ 'ఏదైనా ఆకారాన్ని గీయడం'. ముగింపు పద్ధతి. ముగింపు తరగతి. CLASS lcl_circle IMPLEMENTATION. మెథడ్ డ్రా. వ్రాయండి :/ 'నిర్దిష్ట ఆకారాన్ని గీయడం: సర్కిల్'. ముగింపు పద్ధతి. పద్ధతి calc_area. వ్రాయండి :/ 'Crcle ప్రాంతం = 2iiR'. ముగింపు పద్ధతి. ముగింపు తరగతి. ఎంపిక ప్రారంభం. డేటా : o_cir రకం lcl_circle నుండి REF. O_cir వస్తువును సృష్టించండి. కాల్ మెథడ్ o_cir->డ్రా( ). " కాల్స్ సబ్క్లాస్ డ్రా() పద్ధతి కాల్ మెథడ్ o_cir->calc_area( ). ULINE. "--------- ఇరుకైన తారాగణం (అప్కాస్ట్)---------------" డేటా : o_shp రకం lcl_shape. o_shp = o_cir. " ఇరుకైన తారాగణం (అప్కాస్ట్) కాల్ మెథడ్ o_shp->డ్రా( ). " ఉప తరగతి డ్రా() పద్ధతిని పిలుస్తుంది "METHOD 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. పద్ధతులు:m1. ముగింపు తరగతి. క్లాస్ a1 అమలు. పద్ధతి m1. వ్రాయండి: 'a1:',num1. ముగింపు పద్ధతి. ముగింపు తరగతి. క్లాస్ b1 నిర్వచనం a1 నుండి వారసత్వం. పబ్లిక్ విభాగం. పద్ధతులు:m2, m1 పునర్నిర్వచనం. ముగింపు తరగతి. క్లాస్ బి1 అమలు. పద్ధతి m1. num1 = num1 . వ్రాయండి: 'b1:',num1. ముగింపు పద్ధతి. పద్ధతి m2. వ్రాయండి: 'తరగతి b2లో M1'. ముగింపు పద్ధతి. ముగింపు తరగతి. ఎంపిక ప్రారంభం. డేటా: a1కి పేరెంట్ రకం రెఫ్. డేటా: పిల్లల రకం b1కి సూచించండి. *డేటా: c టైప్ REF TO c1. ******************************************************* **************** వస్తువును సృష్టించండి. parent = బిడ్డ. " upcasting CALL METHOD parent->m1( ). కాల్ మెథడ్ చైల్డ్->m1( ). కాల్ మెథడ్ చైల్డ్->m2( ). * కాల్ పద్ధతి a->m2( ). "మేము సూపర్ క్లాస్ రెఫరెన్స్ ఉపయోగించి స్వంత సబ్ క్లాస్ పద్ధతులను యాక్సెస్ చేయలేము. కొత్త వాక్యం. చైల్డ్ ?= పేరెంట్. " డౌన్ కాస్టింగ్ కాల్ మెథడ్ చైల్డ్->m1( ). కొత్త వాక్యం. కాల్ మెథడ్ చైల్డ్->m2( ). ******************************************************* ***************** *" లోపం శూన్య ref *OBJECTని సృష్టించండి a. *b ?= a. "డౌన్ కాస్టింగ్ ఇప్పటికీ దాని ఇవ్వడం డంప్ *కాల్ మెథడ్ b->m1( ). ******************************************************* **************** * వస్తువును సృష్టించండి a. ప్రయత్నించండి. b ?= a. "మీరు 'NULL' ఆబ్జెక్ట్ రిఫరెన్స్ డంప్ని ఉపయోగించడానికి ప్రయత్నించారు CATCH cx_sy_move_cast_error. కాల్ మెథడ్ b->m1( ). ENDTRY. ******************************************************* **************** * వస్తువును సృష్టించండి a. వస్తువును సృష్టించండి బి. ప్రయత్నించండి. b ?= a. CATCH cx_sy_move_cast_error. కాల్ మెథడ్ b->m1( ). కాల్ మెథడ్ b->m2( ). ENDTRY. ******** ప్రత్యేక విలువలు****************** డేటా : lv_string TYPE స్ట్రింగ్, lv_string2 TYPE స్ట్రింగ్, lv_string_final TYPE స్ట్రింగ్. రకాలు: BEGIN OF ty_data, auth TYPE c, END OF ty_data. డేటా: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 టై_డేటా యొక్క TYPE TABLE, lt_user TYPE TABLE ty_data. lv_string = 'a,b,c,a'. lv_string2 = 'd,b,c,a'. ',' వద్ద lv_stringని స్ప్లిట్ చేయండి. lv_string2 వద్ద ',' పట్టికలోకి lt_user2ని విభజించండి. lt_user2లో లూప్ చేయి ఫీల్డ్-సింబల్(అసైనింగ్) ) చొప్పించు పట్టికలో lt_user. ENDLOOP. SORT lt_user ప్రమాణం ద్వారా. lt_user comPARING auth నుండి ప్రక్కనే ఉన్న నకిలీలను తొలగించండి. IF sy-subrc = 0. lt_user అసైనింగ్ ఫీల్డ్-SYMBOL(లో లూప్ చేయండి ) lv_string_final ప్రారంభమైనది అయితే. lv_string_final = -ప్రామాణీకరణ. లేకపోతే. CONCATENATE lv_string_final -auth INTO lv_string_final ',' ద్వారా వేరు చేయబడింది. ENDIF. ENDLOOP. ENDIF.
0 వ్యాఖ్యలు