Vertolking in ABAP-program

KLAS a1 DEFINISIE.
 OPENBARE AFDELING.
 DATA: num1 TIPE i WAARDE 100.
 METODES: m1.
 EINDKLAS.
 KLAS a1 IMPLEMENTERING.
 METODE m1.
 SKRYF: 'a1:', nommer1.
 EINDMETODE.
 EINDKLAS.
 KLAS b1 DEFINISIE ERF VAN a1.
 OPENBARE AFDELING.
 METODES:m2, m1 HERDEFINISIE.
 EINDKLAS.
 KLAS b1 IMPLEMENTERING.
 METODE m1.
 nommer1 = nommer1 .
 SKRYF: 'b1:', nommer1.
 EINDMETODE.
 METODE m2.
 SKRYF: 'M2 in klas b1'.
 EINDMETODE.
 EINDKLAS.
 BEGIN VAN KEUSE.
 DATA: 'n TIPE VERW. NA a1.
 DATA: b TIPE VERW. NA b1.
 *data: c tik REF TO c1.
 ************************************************** ************** SKEP OBJEK b.
 a = b.  "opsaai OPROEPMETODE a->m1( ).
 *roep METODE a->m2( ).  "Ons het nie toegang tot die eie subklasmetodes deur superklasref.
 NUWE LYN.
 b ?= a.  " down casting CALL METODE b->m1( ).
 NUWE LYN.
 OPROEPMETODE b->m2( ).
 ************************************************** *************** " fout null ref skep OBJEK a.
 b ?= a.  "down casting still its give dump call METODE b->m1( ).
 ************************************************** *************** SKEP OBJEK a.
 PROBEER.
 b ?= a.  "U het probeer om 'n 'NULL'-objekverwysingstorting CATCH cx_sy_move_cast_error te gebruik.
 OPROEPMETODE b->m1( ).
 EINDE.
 ************************************************** *************** SKEP OBJEK a.
 SKEP OBJEK b.
 PROBEER.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 OPROEPMETODE b->m1( ).
 noem METODE b->m2( ).
 EINDE.
 KLAS lcl_vorm DEFINISIE.
 OPENBARE AFDELING.
 METODES teken.
 EINDKLAS.
 KLAS lcl_sirkel DEFINISIE ERF VAN lcl_vorm.
 OPENBARE AFDELING.
 METODES: teken HERDEFINISIE, bereken_area.
 EINDKLAS.
 KLAS lcl_shape IMPLEMENTERING.
 METODE teken.
 SKRYF:/ 'Teken enige vorm'.
 EINDMETODE.
 EINDKLAS.
 KLAS lcl_sirkel IMPLEMENTERING.
 METODE teken.
 SKRYF :/ 'Teken spesifieke vorm: Sirkel'.
 EINDMETODE.
 METODE bereken_area.
 SKRYF:/ 'Area Of Crcle = 2iiR'.
 EINDMETODE.
 EINDKLAS.
 BEGIN VAN KEUSE.
 DATA : o_cir TIPE VERWYSING NA lcl_sirkel.
 SKEPP OBJEK o_cir.
 ROEP METODE o_cir->draw( ).  " roep subklas Draw() metode OPROEPMETODE o_cir->calc_area( ).
 ULINE.
 "--------- Smal cast(Upcast)---------------" DATA : o_shp TIPE REF TO lcl_shape.
 o_shp = o_cir.  "Narrow cast (Upcast) ROEP METODE o_shp->draw( ).  " roep subklas Draw() metode "oproep METODE o_shp->calc_area( ) .  " samestelling fout ULINE.
 "--------- Widening Cast (Downcast) -----------" DATA : o_cir1 TIPE REF TO lcl_circle.
 " o_cir1 = o_shp.  " kompilasiefout o_cir1 ?= o_shp.  " Wideing Cast (Downcast) OPROEPMETODE o_cir1->draw( ).  " roep subklas Draw() metode OPROEPMETODE o_cir1->calc_area( ).
 KLAS a1 DEFINISIE.
 OPENBARE AFDELING.
 DATA: num1 TIPE i WAARDE 100.
 METODES: m1.
 EINDKLAS.
 KLAS a1 IMPLEMENTERING.
 METODE m1.
 SKRYF: 'a1:', nommer1.
 EINDMETODE.
 EINDKLAS.
 KLAS b1 DEFINISIE ERF VAN a1.
 OPENBARE AFDELING.
 METODES:m2, m1 HERDEFINISIE.
 EINDKLAS.
 KLAS b1 IMPLEMENTERING.
 METODE m1.
 nommer1 = nommer1 .
 SKRYF: 'b1:', nommer1.
 EINDMETODE.
 METODE m2.
 SKRYF: 'M2 in klas b1'.
 EINDMETODE.
 EINDKLAS.
 BEGIN VAN KEUSE.
 DATA: ouer TIPE VERW. NA a1.
 DATA: kind TIPE VERW NA b1.
 *data: c tik REF TO c1.
 ************************************************** ************** SKEP OBJEK kind.
 ouer = kind.  "upcasting CALL METODE parent->m1( ).
 OPROEPMETODE kind->m1( ).
 OPROEPMETODE kind->m2( ).
 *roep METODE a->m2( ).  "Ons het nie toegang tot die eie subklasmetodes deur superklasref.
 NUWE LYN.
 kind ?= ouer.  " down casting CALL METODE kind->m1( ).
 NUWE LYN.
 OPROEPMETODE kind->m2( ).
 ************************************************** **************** *" fout null ref *skep OBJECT a.
 *b ?= a.  "down casting still its give dump *call METODE b->m1( ).
 ************************************************** **************** * SKEPP OBJEK a.
 PROBEER.
 b ?= a.  "U het probeer om 'n 'NULL'-objekverwysingstorting CATCH cx_sy_move_cast_error te gebruik.
 OPROEPMETODE b->m1( ).
 EINDE.
 ************************************************** **************** * SKEPP OBJEK a.
 SKEP OBJEK b.
 PROBEER.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 OPROEPMETODE b->m1( ).
 noem METODE b->m2( ).
 EINDE.
 ******** Unieke waardes****************** DATA : lv_string TYPE string, lv_string2 TYPE string, lv_string_final TYPE string.
 TIPE: BEGIN VAN ty_data, auth TYPE c, END OF ty_data.
 DATA: ls_user TYPE ty_data, ls_user2 TIPE ty_data, lt_user2 TIPE TABEL VAN ty_data, lt_user TIPE TABEL VAN ty_data.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 SPLIT lv_string BY ',' IN TABEL lt_user.
 SPLIT lv_string2 BY ',' IN TABEL lt_user2.
 LUS BY lt_user2 TOEDIEN VELD-SIMBOOL toe( ).
 VOEG IN IN TABEL lt_user.
 ENDLOOP.
 SORTEER lt_user DEUR auth.
 SKEE AANSLUITENDE DUPLIKATE VANAF lt_user VERGELYK Auth.
 IF sy-subrc = 0.
 LUS BY lt_user TOEDIENING VAN VELD-SIMBOOL( ).
 INDIEN lv_string_finale AANVAARLIK IS.
 lv_string_final = -gesag.
 ANDERS.
 SAAMVOEG lv_string_finale -auth IN lv_string_final GESKEI DEUR ','.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

Los kommentaar

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.