Casting sa ABAP Program

KLASE a1 KAHULUGAN.
 PUBLIC SECTION.
 DATA: NUM1 TYPE ug VALUE 100.
 MGA PAMAAGI:m1.
 KATAPUSANG KLASE.
 KLASE a1 IMPLEMENTASYON.
 PAMAAGI m1.
 ISULAT: 'a1:',num1.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 KLASE b1 KAHULOGAN PAGPANULOD GIKAN SA a1.
 PUBLIC SECTION.
 MGA PAMAAGI:m2, m1 PAGHULAGWAY.
 KATAPUSANG KLASE.
 KLASE B1 IMPLEMENTASYON.
 PAMAAGI m1.
 numero1 = numero1.
 ISULAT: 'b1:',num1.
 KATAPUSAN NGA PAMAAGI.
 PAMAAGI m2.
 ISULAT: 'M2 sa klase b1'.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 PAGSUGOD-SA-PILI.
 DATA: usa ka TYPE REF TO a1.
 DATA: b TYPE REF TO b1.
 *data: c type REF TO c1.
 *************************************************** ************** PAGHIMO OBJECT b.
 a = b.  "upcasting PAMAAGI SA TAWAG a->m1( ).
 *tawag sa PAMAAGI a->m2( ).  "Dili kami maka-access sa kaugalingon nga mga pamaagi sa sub class gamit ang super class ref.
 BAGONG LINYA.
 b ?= a.  " down casting PAMAAGI SA TAWAG b->m1( ).
 BAGONG LINYA.
 PAMAAGI SA TAWAG b->m2( ).
 *************************************************** *************** " error null ref create OBJECT a.
 b ?= a.  "down casting gihapon ang paghatag niini nga dump call METHOD b->m1( ).
 *************************************************** ***************** PAGHIMO OBJECT a.
 SULAYI.
 b ?= a.  "imong misulay sa paggamit sa usa ka 'NULL' object reference dump CATCH cx_sy_move_cast_error.
 PAMAAGI SA TAWAG b->m1( ).
 KATAPUSAN.
 *************************************************** ***************** PAGHIMO OBJECT a.
 PAGHIMO OBJECT b.
 SULAYI.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 PAMAAGI SA TAWAG b->m1( ).
 tawga ang PAMAAGI b->m2( ).
 KATAPUSAN.
 KLASE lcl_shape KAHULUGAN.
 PUBLIC SECTION.
 MGA PAMAAGI draw.
 KATAPUSANG KLASE.
 KLASE lcl_circle KAHULUGAN NGA NAPANULOD GIKAN sa lcl_shape.
 PUBLIC SECTION.
 MGA PAMAAGI: pagdrowing og REDEFINITION, calc_area.
 KATAPUSANG KLASE.
 KLASE lcl_shape IMPLEMENTATION.
 PAMAAGI draw.
 PAGSULAT :/ 'Pagdrowing sa bisan unsang Hugis'.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 KLASE lcl_circle IMPLEMENTATION.
 PAMAAGI draw.
 PAGSULAT :/ 'Pagdrowing og piho nga porma: Lingin'.
 KATAPUSAN NGA PAMAAGI.
 PAMAAGI calc_area.
 ISULAT :/ 'Lugar Sa Crcle = 2iiR'.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 PAGSUGOD-SA-PILI.
 DATA : o_cir TYPE REF SA lcl_circle.
 PAGHIMO OBJECT o_cir.
 PAMAAGI SA TAWAG o_cir->draw( ).  " nagtawag sa subclass nga Draw() nga pamaagi sa TAWAG o_cir->calc_area( ).
 ULINE.
 "--------- Narrow cast(Upcast)----------------" DATA : o_shp TYPE REF TO lcl_shape.
 o_shp = o_cir.  " Narrow cast(Upcast) CALL METHOD o_shp->draw( ).  " nagtawag sa sub class Draw() nga pamaagi "tawag sa METHOD o_shp->calc_area() .  " sayop sa pag-compile ULINE.
 "---------- Pagpalapad sa Cast(Downcast) -----------" DATA : o_cir1 TYPE REF SA lcl_circle.
 " o_cir1 = o_shp.  " sayop sa complilation o_cir1 ?= o_shp.  " Pagpalapad sa Cast(Downcast) PAMAAGI SA TAWAG o_cir1->draw( ).  " nagtawag sa subclass nga Draw() nga paagi sa TAWAG o_cir1->calc_area( ).
 KLASE a1 KAHULUGAN.
 PUBLIC SECTION.
 DATA: NUM1 TYPE ug VALUE 100.
 MGA PAMAAGI:m1.
 KATAPUSANG KLASE.
 KLASE a1 IMPLEMENTASYON.
 PAMAAGI m1.
 ISULAT: 'a1:',num1.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 KLASE b1 KAHULOGAN PAGPANULOD GIKAN SA a1.
 PUBLIC SECTION.
 MGA PAMAAGI:m2, m1 PAGHULAGWAY.
 KATAPUSANG KLASE.
 KLASE B1 IMPLEMENTASYON.
 PAMAAGI m1.
 numero1 = numero1.
 ISULAT: 'b1:',num1.
 KATAPUSAN NGA PAMAAGI.
 PAMAAGI m2.
 ISULAT: 'M2 sa klase b1'.
 KATAPUSAN NGA PAMAAGI.
 KATAPUSANG KLASE.
 PAGSUGOD-SA-PILI.
 DATA: ginikanan TYPE REF TO a1.
 DATA: bata TYPE REF TO b1.
 *data: c type REF TO c1.
 *************************************************** ************** PAGHIMO OBJECT bata.
 ginikanan = anak.  "upcasting CALL METHOD parent->m1( ).
 PAMAAGI SA PAGTAWAG bata->m1( ).
 PAMAAGI SA PAGTAWAG bata->m2( ).
 *tawag sa PAMAAGI a->m2( ).  "Dili kami maka-access sa kaugalingon nga mga pamaagi sa sub class gamit ang super class ref.
 BAGONG LINYA.
 anak ?= ginikanan.  " down casting PAMAAGI SA TAWAG bata->m1( ).
 BAGONG LINYA.
 PAMAAGI SA PAGTAWAG bata->m2( ).
 *************************************************** ***************** *" error null ref *paghimo OBJECT a.
 *b ?= a.  "down casting gihapon ang paghatag niini nga dump *tawag sa METHOD b->m1( ).
 *************************************************** ***************** * PAGHIMO OBJECT a.
 SULAYI.
 b ?= a.  "imong misulay sa paggamit sa usa ka 'NULL' object reference dump CATCH cx_sy_move_cast_error.
 PAMAAGI SA TAWAG b->m1( ).
 KATAPUSAN.
 *************************************************** ***************** * PAGHIMO OBJECT a.
 PAGHIMO OBJECT b.
 SULAYI.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 PAMAAGI SA TAWAG b->m1( ).
 tawga ang PAMAAGI b->m2( ).
 KATAPUSAN.
 ******** Talagsaon nga mga Bili****************** DATA : lv_string TYPE string, lv_string2 TYPE string, lv_string_final TYPE string.
 MGA TYPES: SUGOD SA ty_data, auth TYPE c, END OF ty_data.
 DATA: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 TYPE TABLE OF ty_data, lt_user TYPE TABLE OF ty_data.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 BAHAGI ang lv_string SA ',' SA TABLE lt_user.
 BAHAGI ang lv_string2 SA ',' SA TABLE lt_user2.
 LOOP SA lt_user2 NAG-ASSIGING FIELD-SYMBOL( ).
 INSERT SA TABLE lt_user.
 ENDLOOP.
 SORT lt_user PINAAGI sa auth.
 DELETE ADJACENT DUPLICATES GIKAN lt_user COMPARING auth.
 KUNG sy-subrc = 0.
 LOOP SA lt_user NAG-ASSIGING FIELD-SYMBOL( ).
 KON ang lv_string_final MAAYONG INISYAL.
 lv_string_final = -auth.
 UBAN.
 CONCATENATE lv_string_final -auth SA lv_string_final GIBULAG NI ','.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

Leave sa usa ka comment

Kini nga site naggamit sa Akismet sa pagpakunhod sa spam. Hibal-i kon giunsa ang pagproseso sa datos sa imong komento.