Casting ing Program ABAP

DEFINISI KELAS a1.
 BAGIAN UMUM.
 DATA: NUM1 JENIS i VALUE 100.
 METODE: m1.
 KELAS.
 IMPLEMENTASI KELAS a1.
 METODE m1.
 NULIS: 'a1:', angka1.
 METODE END.
 KELAS.
 KELAS b1 DEFINISI WARIS saka a1.
 BAGIAN UMUM.
 METODE: m2, m1 REDEFINISI.
 KELAS.
 PELAKSANAAN KELAS b1.
 METODE m1.
 angka1 = angka1.
 NULIS: 'b1:', angka1.
 METODE END.
 METODE m2.
 NULIS: 'M2 ing kelas b1'.
 METODE END.
 KELAS.
 Miwiti-PILIHAN.
 DATA: JENIS REF TO a1.
 DATA: b JENIS REF TO b1.
 *data: c tipe REF TO c1.
 ***************************************************** ************** GIPUN OBJEK b.
 a = b.  "METODE PANGGILAN upcasting a->m1( ).
 *telpon METODE a->m2( ).  "Kita ora bisa ngakses metode sub kelas dhewe nggunakake ref kelas super.
 NEW-LINE.
 b? = a.  " down casting METODE CALL b->m1( ).
 NEW-LINE.
 METODE PANGGILAN b->m2( ).
 ***************************************************** *************** " kesalahan null ref nggawe OBJEK a.
 b? = a.  "down casting isih menehi METODE panggilan dump b->m1().
 ***************************************************** *************** GIPUN OBJEK a.
 NYOBA.
 b? = a.  "ur nyoba nggunakake referensi obyek 'NULL' dump CATCH cx_sy_move_cast_error.
 METODE PANGGILAN b->m1( ).
 ENDTRY.
 ***************************************************** *************** GIPUN OBJEK a.
 Nggawe OBJEK b.
 NYOBA.
 b? = a.
 CATCH cx_sy_move_cast_error.
 METODE PANGGILAN b->m1( ).
 nelpon METODE b->m2( ).
 ENDTRY.
 KELAS lcl_shape DEFINISI.
 BAGIAN UMUM.
 METODE nggambar.
 KELAS.
 KELAS lcl_circle DEFINISI WARIS saka lcl_shape.
 BAGIAN UMUM.
 METODE: tarik REDEFINITION, calc_area.
 KELAS.
 KELAS lcl_shape IMPLEMENTASI.
 METODE nggambar.
 NULIS :/ 'Nggambar Wujud Sembarang'.
 METODE END.
 KELAS.
 KELAS lcl_circle IMPLEMENTASI.
 METODE nggambar.
 TULIS :/ 'Nggambar wangun spesifik: Lingkaran'.
 METODE END.
 METODE calc_area.
 NULIS :/ 'Area Of Crcle = 2iiR'.
 METODE END.
 KELAS.
 Miwiti-PILIHAN.
 DATA : o_cir JENIS REF TO lcl_circle.
 Nggawe OBJEK o_cir.
 METODE PANGGILAN o_cir->draw( ).  " nelpon subclass Draw() method CALL METHOD o_cir->calc_area( ).
 ULINE.
 "--------- Narrow cast(Upcast)----------------" DATA : o_shp TYPE REF TO lcl_shape.
 o_shp = o_cir.  " Narrow cast(Upcast) METODE PANGGILAN o_shp->draw( ).  " nelpon subclass Draw() method "telpon METHOD o_shp->calc_area().  "kesalahan kompilasi ULINE.
 "---------- Widening Cast (Downcast) -----------" DATA : o_cir1 JENIS REF TO lcl_circle.
 "o_cir1 = o_shp.  " kesalahan kompilasi o_cir1 ?= o_shp.  " Widening Cast(Downcast) METODE CALL o_cir1->draw( ).  " nelpon subclass Draw() method CALL METHOD o_cir1->calc_area( ).
 DEFINISI KELAS a1.
 BAGIAN UMUM.
 DATA: NUM1 JENIS i VALUE 100.
 METODE: m1.
 KELAS.
 IMPLEMENTASI KELAS a1.
 METODE m1.
 NULIS: 'a1:', angka1.
 METODE END.
 KELAS.
 KELAS b1 DEFINISI WARIS saka a1.
 BAGIAN UMUM.
 METODE: m2, m1 REDEFINISI.
 KELAS.
 PELAKSANAAN KELAS b1.
 METODE m1.
 angka1 = angka1.
 NULIS: 'b1:', angka1.
 METODE END.
 METODE m2.
 NULIS: 'M2 ing kelas b1'.
 METODE END.
 KELAS.
 Miwiti-PILIHAN.
 DATA: induk JENIS REF TO a1.
 DATA: bocah JENIS REF TO b1.
 *data: c tipe REF TO c1.
 ***************************************************** ************** Gawe OBJEK bocah.
 wong tuwa = anak.  "METODE PANGGILAN upcasting induk->m1( ).
 METODE PANGGILAN anak->m1( ).
 METODE PANGGILAN anak->m2( ).
 *telpon METODE a->m2( ).  "Kita ora bisa ngakses metode sub kelas dhewe nggunakake ref kelas super.
 NEW-LINE.
 anak ? = wong tuwa.  " down casting METODE PANGGILAN anak->m1( ).
 NEW-LINE.
 METODE PANGGILAN anak->m2( ).
 ***************************************************** ************** *" kesalahan null ref *gawe OBJEK a.
 *b?= a.  "down casting isih menehi dump *telpon METODE b->m1().
 ***************************************************** ***************** * GIPUN OBJEK a.
 NYOBA.
 b? = a.  "ur nyoba nggunakake referensi obyek 'NULL' dump CATCH cx_sy_move_cast_error.
 METODE PANGGILAN b->m1( ).
 ENDTRY.
 ***************************************************** ***************** * GIPUN OBJEK a.
 Nggawe OBJEK b.
 NYOBA.
 b? = a.
 CATCH cx_sy_move_cast_error.
 METODE PANGGILAN b->m1( ).
 nelpon METODE b->m2( ).
 ENDTRY.
 ******** Nilai Unik****************** DATA : lv_string TYPE string, lv_string2 TYPE string, lv_string_final TYPE string.
 JENIS: BEGIN OF 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'.
 SPLIT lv_string AT ',' MENJADI TABEL lt_user.
 SPLIT lv_string2 AT ',' MENJADI TABEL lt_user2.
 LOOP AT lt_user2 ASSIGNING FIELD-SIMBOL( ).
 INSERT INTO TABLE lt_user.
 ENDLOOP.
 SORT lt_user BY auth.
 Mbusak duplikat jejer saka lt_user COMPARING auth.
 IF sy-subrc = 0.
 LOOP AT lt_user ASSIGNING FIELD-SIMBOL( ).
 Yen lv_string_final IS INITIAL.
 lv_string_final = -auth.
 LAIN.
 CONCATENATE lv_string_final -auth INTO lv_string_final Dipisahake dening ','.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

Ninggalake komentar

Situs iki nggunakake Akismet kanggo ngurangi spam. Sinau babagan proses data sampeyan.