кіріспе – Бұл жазбаның бөлігі ABAP бағдарламалары сериясы.
a1 СЫНЫП АНЫҚТАМА. ҚОҒАМДЫҚ БӨЛІМ. ДЕРЕКТЕР: num1 TYPE i VALUE 100. ӘДІСТЕР: м1. СОҢҒЫ СЫНЫП. a1 СЫНЫПЫН ЖҮЗЕГЕ АСЫРУ. ӘДІС m1. ЖАЗУ: 'a1:',num1. ENDMETHOD. СОҢҒЫ СЫНЫП. b1 СЫНЫП a1-ден мұрагер АНЫҚТАМА. ҚОҒАМДЫҚ БӨЛІМ. ӘДІСТЕР: м2, м1 ҚАЙТА АНЫҚТАУ. СОҢҒЫ СЫНЫП. b1 СЫНЫПЫН ЖАСАУ. ӘДІС m1. сан1 = сан1 . ЖАЗУ: 'b1:',num1. ENDMETHOD. ӘДІС m2. ЖАЗЫҢЫЗ: 'b2 класындағы М1'. ENDMETHOD. СОҢҒЫ СЫНЫП. ТАҢДАУДЫ БАСТАУ. ДЕРЕКТЕР: a1 РЕФ ТИПІ. ДЕРЕКТЕР: b TYPE REF TO b1. *деректер: c түрі REF TO c1. ************************************************* ************* НЫСАНЫ ЖАСАУ b. a = b. "Қоңырау шалу әдісі a->m1( ). *a->m2( ) әдісін шақыру. " біз супер класс реф. көмегімен жеке қосалқы сынып әдістеріне қол жеткізе алмаймыз. ЖАҢА LINE. b ?= a. "төмен құю ҚОҢЫРАУ ӘДІСІ b->m1( ). ЖАҢА LINE. ҚОҢЫРАУ ӘДІСІ b->m2( ). ************************************************* *************** " қате null ref OBJECT жасау a. b ?= a. "төмен құю әлі де оның демп шақыру ӘДІСІ b->m1( ). ************************************************* *************** НЫСАНЫ ЖАСАУ a. ТЫРЫСУ. b ?= a. "CATCH cx_sy_move_cast_error" NULL' нысан анықтамасының демпін пайдалануға әрекет жасадыңыз. ҚОҢЫРАУ ӘДІСІ b->m1( ). ENDTRY. ************************************************* *************** НЫСАНЫ ЖАСАУ a. ОБЪЕКТІ ЖАСАУ b. ТЫРЫСУ. b ?= a. CATCH cx_sy_move_cast_error. ҚОҢЫРАУ ӘДІСІ b->m1( ). b->m2( ) әдісін шақырыңыз. ENDTRY. КЛАСС lcl_shape АНЫҚТАМА. ҚОҒАМДЫҚ БӨЛІМ. ӘДІСТЕР сызу. СОҢҒЫ СЫНЫП. КЛАСС lcl_circle lcl_shape-ден МҰРА АЛУ АНЫҚТАМАСЫ. ҚОҒАМДЫҚ БӨЛІМ. ӘДІСТЕР: ҚАЙТА АНЫҚТАУ, кальк_аймақ. СОҢҒЫ СЫНЫП. КЛАСС lcl_shape ЖАСАУ. сызу әдісі. WRITE :/ 'Кез келген фигураны салу'. ENDMETHOD. СОҢҒЫ СЫНЫП. CLASS lcl_circle ЖАСАУ. сызу әдісі. WRITE :/ 'Арнайы пішінді салу: Шеңбер'. ENDMETHOD. ӘДІС есептеу_аймағы. WRITE :/ 'Area Of Crcle = 2iiR'. ENDMETHOD. СОҢҒЫ СЫНЫП. ТАҢДАУДЫ БАСТАУ. DATA : o_cir TYPE REF TO lcl_circle. ОБЪЕКТІ ЖАСАУ o_cir. ҚОҢЫРАУ ӘДІСІ o_cir->draw( ). " қосымша сыныбын Draw() әдісін шақырады CALL METHOD o_cir->calc_area( ). ULINE. "--------- Тар трансляция(Upcast)---------------" ДЕРЕКТЕР : o_shp TYPE REF TO lcl_shape. o_shp = o_cir. " Тар cast(Upcast) ҚОҢЫРАУ ӘДІСІ o_shp->draw( ). " Draw() әдісінің қосалқы класын шақырады "METHOD o_shp->calc_area( ) шақырады. " компиляция қатесі ULINE. "---------- Кеңейту Cast(төмен) -----------" ДЕРЕКТЕР : o_cir1 TYPE REF TO lcl_circle. " o_cir1 = o_shp. " комплиляция қатесі o_cir1 ?= o_shp. " Трансляцияны кеңейту(төмен) ҚОҢЫРАУ ӘДІСІ o_cir1->draw( ). " қосымша сыныбын Draw() әдісін шақырады CALL METHOD o_cir1->calc_area( ). a1 СЫНЫП АНЫҚТАМА. ҚОҒАМДЫҚ БӨЛІМ. ДЕРЕКТЕР: num1 TYPE i VALUE 100. ӘДІСТЕР: м1. СОҢҒЫ СЫНЫП. a1 СЫНЫПЫН ЖҮЗЕГЕ АСЫРУ. ӘДІС m1. ЖАЗУ: 'a1:',num1. ENDMETHOD. СОҢҒЫ СЫНЫП. b1 СЫНЫП a1-ден мұрагер АНЫҚТАМА. ҚОҒАМДЫҚ БӨЛІМ. ӘДІСТЕР: м2, м1 ҚАЙТА АНЫҚТАУ. СОҢҒЫ СЫНЫП. b1 СЫНЫПЫН ЖАСАУ. ӘДІС m1. сан1 = сан1 . ЖАЗУ: 'b1:',num1. ENDMETHOD. ӘДІС m2. ЖАЗЫҢЫЗ: 'b2 класындағы М1'. ENDMETHOD. СОҢҒЫ СЫНЫП. ТАҢДАУДЫ БАСТАУ. ДЕРЕКТЕР: a1. ДЕРЕКТЕР: еншілес TYPE REF TO b1. *деректер: c түрі REF TO c1. ************************************************* ************** ОБЪЕКТ ЖАСАУ бала. ата-ана = бала. "жоғарғы CALL ӘДІСІ ата-ана->m1( ). ҚОҢЫРАУ ӘДІСІ child->m1( ). ҚОҢЫРАУ ӘДІСІ child->m2( ). *a->m2( ) әдісін шақыру. " біз супер класс реф. көмегімен жеке қосалқы сынып әдістеріне қол жеткізе алмаймыз. ЖАҢА LINE. бала ?= ата-ана. " төмен casting ҚОҢЫРАУ ӘДІСІ child->m1( ). ЖАҢА LINE. ҚОҢЫРАУ ӘДІСІ child->m2( ). ************************************************* **************** *" қате null ref *ОБЪЕКТ жасау a. *b ?= a. "төмен құю бұрынғысынша оның беру дамп *шақыру ӘДІСІ b->m1( ). ************************************************* **************** * ОБЪЕКТ ЖАСАУ a. ТЫРЫСУ. b ?= a. "CATCH cx_sy_move_cast_error" NULL' нысан анықтамасының демпін пайдалануға әрекет жасадыңыз. ҚОҢЫРАУ ӘДІСІ b->m1( ). ENDTRY. ************************************************* **************** * ОБЪЕКТ ЖАСАУ a. ОБЪЕКТІ ЖАСАУ b. ТЫРЫСУ. b ?= a. CATCH cx_sy_move_cast_error. ҚОҢЫРАУ ӘДІСІ b->m1( ). b->m2( ) әдісін шақырыңыз. ENDTRY. ******** Бірегей мәндер******************** ДЕРЕКТЕР : lv_string TYPE жолы, lv_string2 TYPE жолы, lv_string_final TYPE жолы. ТҮРЛЕР: ty_data БАСТАЛУЫ, auth TYPE c, ty_data СОҢЫ. ДЕРЕКТЕР: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 TYPE ty_data, lt_user TYPE TABLE ty_data. lv_string = 'a,b,c,a'. lv_string2 = 'd,b,c,a'. ',' AT TABLE LT_user INTO lv_string BÖLÜK. lv_string2 AT ',' LT_user2 КЕСТЕСІНЕ БӨЛІҢІЗ. LT_user2 ТАҢДАУ ӨРІСІНДЕГІ ЦИКЛ ( ). INSERT INTO TABLE lt_user. ENDLOOP. lt_user аутентификациясы бойынша СҰРЫПТАУ. lt_user COMPARING аутентификациясынан іргелес көшірмелерді ЖОЮ. IF sy-subrc = 0. LT_user ТАҒАЙЫНДАУ ӨРІСІНДЕГІ ТҮРКЕЛУ( ). ЕГЕР lv_string_final БАСТАУЫ БОЛСА. lv_string_final = -авт. БАСҚА. lv_string_final ҚОСУ -auth INTO lv_string_final ',' АРҚЫЛЫ БӨЛГЕН. ENDIF. ENDLOOP. ENDIF.
0 Пікірлер