Casting í ABAP forriti

FLOKKUR a1 SKILGREINING.
 OPINBER HLUTI.
 GÖGN: num1 TYPE i VALUE 100.
 AÐFERÐIR: m1.
 ENDALOKKUR.
 FLOKKUR a1 FRAMKVÆMD.
 AÐFERÐ m1.
 SKRIFA: 'a1:', númer1.
 ENDAÐFERÐ.
 ENDALOKKUR.
 FLOKKUR b1 SKILGREINING EFTIR FRÁ a1.
 OPINBER HLUTI.
 AÐFERÐIR:m2, m1 ENDURSKILGREINING.
 ENDALOKKUR.
 FLOKKUR b1 FRAMKVÆMD.
 AÐFERÐ m1.
 númer1 = númer1.
 SKRIFA: 'b1:', númer1.
 ENDAÐFERÐ.
 AÐFERÐ m2.
 SKRIFA: 'M2 í flokki b1'.
 ENDAÐFERÐ.
 ENDALOKKUR.
 UPPHAF VALS.
 GÖGN: A TEGUND A1.
 GÖGN: b GÖGN TIL B1.
 *gögn: c tegund REF TO c1.
 ************************************************** ************** BÚA TIL HLUTI b.
 a = b.  „Uppvarpssímtalsaðferð a->m1( ).
 *kalla AÐFERÐ a->m2( ).  „Við getum ekki fengið aðgang að eigin undirflokksaðferðum með því að nota ofurflokksref.
 NÝ LÍNA.
 b ?= a.  " niðursteypa KALLAÐFERÐ b->m1( ).
 NÝ LÍNA.
 KALLAÐFERÐ b->m2( ).
 ************************************************** *************** " villa null ref búa til OBJECT a.
 b ?= a.  „down casting still its giving dump call AÐFERÐ b->m1( ).
 ************************************************** *************** BÚA TIL HLUTI a.
 Reyndu.
 b ?= a.  "þú reyndi að nota 'NULL' hlut tilvísun dump CATCH cx_sy_move_cast_error.
 KALLAÐFERÐ b->m1( ).
 ENDTRY.
 ************************************************** *************** BÚA TIL HLUTI a.
 BÚA TIL HLUTI b.
 Reyndu.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 KALLAÐFERÐ b->m1( ).
 kalla AÐFERÐ b->m2( ).
 ENDTRY.
 CLASS lcl_shape SKILGREINING.
 OPINBER HLUTI.
 AÐFERÐIR draga.
 ENDALOKKUR.
 CLASS lcl_circle SKILGREINING EFTIR FRÁ lcl_shape.
 OPINBER HLUTI.
 AÐFERÐIR: teikna ENDURSKILGREINING, calc_area.
 ENDALOKKUR.
 CLASS lcl_shape FRAMKVÆMD.
 AÐFERÐ draga.
 SKRIFA :/ 'Að teikna hvaða form sem er'.
 ENDAÐFERÐ.
 ENDALOKKUR.
 CLASS lcl_circle FRAMKVÆMD.
 AÐFERÐ draga.
 SKRIFA :/ 'Að teikna ákveðna lögun: Hring'.
 ENDAÐFERÐ.
 AÐFERÐ calc_area.
 SKRIFA :/ 'Area Of Crcle = 2iiR'.
 ENDAÐFERÐ.
 ENDALOKKUR.
 UPPHAF VALS.
 GÖGN: o_cir TYPE REF TO lcl_circle.
 BÚA TIL OBJECT o_cir.
 KALLAÐFERÐ o_cir->draw( ).  " kallar undirflokk Draw() aðferð CALL METHOD o_cir->calc_area( ).
 ULINE.
 "--------- Þröngt kast(Uppkast) ---------------" GÖGN : o_shp TYPE REF TO lcl_shape.
 o_shp = o_cir.  " Þröngt kast(Uppkast) KALLAÐFERÐ o_shp->draw( ).  " kallar undirflokk Draw() aðferð "kalla METHOD o_shp->calc_area( ) .  " söfnunarvilla ULINE.
 "---------- Breikkað kast(niðurkast) ----------" GÖGN : o_cir1 TYPE REF TO lcl_circle.
 " o_cir1 = o_shp.  "samsetningarvilla o_cir1 ?= o_shp.  " Breikkað kast(Niðurvarp) SKRIFTAFERÐ o_cir1->draw( ).  " kallar undirflokk Draw() aðferð CALL METHOD o_cir1->calc_area( ).
 FLOKKUR a1 SKILGREINING.
 OPINBER HLUTI.
 GÖGN: num1 TYPE i VALUE 100.
 AÐFERÐIR: m1.
 ENDALOKKUR.
 FLOKKUR a1 FRAMKVÆMD.
 AÐFERÐ m1.
 SKRIFA: 'a1:', númer1.
 ENDAÐFERÐ.
 ENDALOKKUR.
 FLOKKUR b1 SKILGREINING EFTIR FRÁ a1.
 OPINBER HLUTI.
 AÐFERÐIR:m2, m1 ENDURSKILGREINING.
 ENDALOKKUR.
 FLOKKUR b1 FRAMKVÆMD.
 AÐFERÐ m1.
 númer1 = númer1.
 SKRIFA: 'b1:', númer1.
 ENDAÐFERÐ.
 AÐFERÐ m2.
 SKRIFA: 'M2 í flokki b1'.
 ENDAÐFERÐ.
 ENDALOKKUR.
 UPPHAF VALS.
 GÖGN: foreldri GERÐ TIL A1.
 GÖGN: barn GERÐ REF TIL b1.
 *gögn: c tegund REF TO c1.
 ************************************************** ************** BÚA TIL OBJECT barn.
 foreldri = barn.  "upcasting CALL METHOD parent->m1( ).
 KALLAÐFERÐ barn->m1( ).
 KALLAÐFERÐ barn->m2( ).
 *kalla AÐFERÐ a->m2( ).  „Við getum ekki fengið aðgang að eigin undirflokksaðferðum með því að nota ofurflokksref.
 NÝ LÍNA.
 barn ?= foreldri.  "down casting CALL METHOD barn->m1( ).
 NÝ LÍNA.
 KALLAÐFERÐ barn->m2( ).
 ************************************************** **************** *" villa null ref *búa til OBJECT a.
 *b ?= a.  "down casting still its giving dump *call METHOD b->m1( ).
 ************************************************** **************** * BÚA TIL HLUTI a.
 Reyndu.
 b ?= a.  "þú reyndi að nota 'NULL' hlut tilvísun dump CATCH cx_sy_move_cast_error.
 KALLAÐFERÐ b->m1( ).
 ENDTRY.
 ************************************************** **************** * BÚA TIL HLUTI a.
 BÚA TIL HLUTI b.
 Reyndu.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 KALLAÐFERÐ b->m1( ).
 kalla AÐFERÐ b->m2( ).
 ENDTRY.
 ******** Einstök gildi****************** GÖGN: lv_strengur TYPE strengur, lv_streng2 TYPE strengur, lv_streng_final TYPE strengur.
 TYPES: BEGIN OF ty_data, auth TYPE c, END OF ty_data.
 GÖGN: 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'.
 SKIPTA lv_streng AT ',' INTO TABLE lt_user.
 SKIPTA lv_string2 AT ',' INTO TABLE lt_user2.
 LOOP AT lt_user2 AT AGSIGING REIT-TEKN( ).
 SETJA INN INTO TABLE lt_user.
 ENDALYKKJA.
 RAÐAÐU lt_user EFTIR auth.
 EYÐA AÐSTÆÐUM AFRITTUM FRÁ lt_user SAMMENNINGUR Auth.
 EF sy-subrc = 0.
 LOOP AT lt_user ASIGING FIELD-TEKN( ).
 EF lv_string_final ER UPPHAFI.
 lv_string_final = -auth.
 ANNAR.
 CONCATENATE lv_string_final -auth INTO lv_string_final AÐskilið með ','.
 ENDIF.
 ENDALYKKJA.
 ENDIF.

 

Skildu eftir athugasemd

Þessi síða notar Akismet til að draga úr ruslpósti. Lærðu hvernig ummæli þín eru unnin.