Pelakon dalam Program ABAP

DEFINISI KELAS a1.
 BAHAGIAN AWAM.
 DATA: num1 JENIS i NILAI 100.
 KAEDAH:m1.
 KELAS TAMAT.
 PELAKSANAAN KELAS a1.
 KAEDAH m1.
 TULIS: 'a1:',num1.
 KAEDAH TAMAT.
 KELAS TAMAT.
 KELAS b1 DEFINISI WARIS DARIPADA a1.
 BAHAGIAN AWAM.
 KAEDAH:m2, m1 DEFINISI SEMULA.
 KELAS TAMAT.
 PELAKSANAAN KELAS b1.
 KAEDAH m1.
 num1 = num1 .
 TULIS: 'b1:',num1.
 KAEDAH TAMAT.
 KAEDAH m2.
 TULIS: 'M2 dalam kelas b1'.
 KAEDAH TAMAT.
 KELAS TAMAT.
 MULA-PILIHAN.
 DATA: JENIS RUJUK KE a1.
 DATA: b JENIS RUJUK KE b1.
 *data: c taip REF KE c1.
 *************************************************** ************** MENCIPTA OBJEK b.
 a = b.  "KAEDAH PANGGILAN upcasting a->m1( ).
 *panggil KAEDAH a->m2( ).  " kami tidak boleh mengakses kaedah sub kelas sendiri menggunakan rujukan kelas super.
 BARIS BARU.
 b ?= a.  " down casting KAEDAH PANGGILAN b->m1( ).
 BARIS BARU.
 KAEDAH PANGGILAN b->m2( ).
 *************************************************** *************** " ralat null rujuk buat OBJEK a.
 b ?= a.  "buangan ke bawah masih KAEDAH panggilan pembuangan pemberiannya b->m1( ).
 *************************************************** *************** MENCIPTA OBJEK a.
 CUBA.
 b ?= a.  "Anda cuba menggunakan tempat pembuangan rujukan objek 'NULL' CATCH cx_sy_move_cast_error.
 KAEDAH PANGGILAN b->m1( ).
 TAMAT.
 *************************************************** *************** MENCIPTA OBJEK a.
 MENCIPTA OBJEK b.
 CUBA.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 KAEDAH PANGGILAN b->m1( ).
 panggil KAEDAH b->m2( ).
 TAMAT.
 KELAS lcl_shape DEFINISI.
 BAHAGIAN AWAM.
 KAEDAH cabutan.
 KELAS TAMAT.
 KELAS lcl_circle DEFINISI MEWARIS DARI lcl_shape.
 BAHAGIAN AWAM.
 KAEDAH: lukis DEFINISI SEMULA, calc_area.
 KELAS TAMAT.
 PELAKSANAAN LCL_shape KELAS.
 KAEDAH cabutan.
 TULIS :/ 'Melukis sebarang Bentuk'.
 KAEDAH TAMAT.
 KELAS TAMAT.
 KELAS lcl_circle PELAKSANAAN.
 KAEDAH cabutan.
 TULIS :/ 'Melukis bentuk khusus: Bulatan'.
 KAEDAH TAMAT.
 KAEDAH calc_area.
 TULIS :/ 'Kawasan Crcle = 2iiR'.
 KAEDAH TAMAT.
 KELAS TAMAT.
 MULA-PILIHAN.
 DATA : o_cir TYPE REF TO lcl_circle.
 CIPTA OBJEK o_cir.
 KAEDAH PANGGILAN o_cir->draw( ).  " memanggil kaedah Draw() subkelas KAEDAH PANGGILAN o_cir->calc_area( ).
 ULINE.
 "--------- Narrow cast(Upcast)----------------" DATA : o_shp JENIS RUJUK KE lcl_shape.
 o_shp = o_cir.  " Cast sempit(Upcast) KAEDAH PANGGILAN o_shp->draw( ).  " memanggil kaedah Draw() sub kelas "panggilan KAEDAH o_shp->calc_area( ) .  " ralat kompilasi ULINE.
 "---------- Melebarkan Cast(Downcast) ------------" DATA : o_cir1 JENIS RUJUK KE lcl_circle.
 " o_cir1 = o_shp.  " ralat kompilasi o_cir1 ?= o_shp.  " Meluaskan Cast(Downcast) KAEDAH PANGGILAN o_cir1->draw( ).  " memanggil kaedah Draw() subkelas KAEDAH PANGGILAN o_cir1->calc_area( ).
 DEFINISI KELAS a1.
 BAHAGIAN AWAM.
 DATA: num1 JENIS i NILAI 100.
 KAEDAH:m1.
 KELAS TAMAT.
 PELAKSANAAN KELAS a1.
 KAEDAH m1.
 TULIS: 'a1:',num1.
 KAEDAH TAMAT.
 KELAS TAMAT.
 KELAS b1 DEFINISI WARIS DARIPADA a1.
 BAHAGIAN AWAM.
 KAEDAH:m2, m1 DEFINISI SEMULA.
 KELAS TAMAT.
 PELAKSANAAN KELAS b1.
 KAEDAH m1.
 num1 = num1 .
 TULIS: 'b1:',num1.
 KAEDAH TAMAT.
 KAEDAH m2.
 TULIS: 'M2 dalam kelas b1'.
 KAEDAH TAMAT.
 KELAS TAMAT.
 MULA-PILIHAN.
 DATA: induk JENIS RUJUK KE a1.
 DATA: anak JENIS RUJUK KE B1.
 *data: c taip REF KE c1.
 *************************************************** ************** CIPTA OBJEK anak.
 ibu bapa = anak.  "Kaedah PANGGILAN upcasting induk->m1( ).
 CARA PANGGILAN anak->m1( ).
 CARA PANGGILAN anak->m2( ).
 *panggil KAEDAH a->m2( ).  " kami tidak boleh mengakses kaedah sub kelas sendiri menggunakan rujukan kelas super.
 BARIS BARU.
 anak ?= ibu bapa.  " down casting KAEDAH PANGGILAN anak->m1( ).
 BARIS BARU.
 CARA PANGGILAN anak->m2( ).
 *************************************************** **************** *" ralat null ref *cipta OBJEK a.
 *b ?= a.  "turun casting masih pembuangan pemberiannya *panggil KAEDAH b->m1( ).
 *************************************************** ***************** * MENCIPTA OBJEK a.
 CUBA.
 b ?= a.  "Anda cuba menggunakan tempat pembuangan rujukan objek 'NULL' CATCH cx_sy_move_cast_error.
 KAEDAH PANGGILAN b->m1( ).
 TAMAT.
 *************************************************** ***************** * MENCIPTA OBJEK a.
 MENCIPTA OBJEK b.
 CUBA.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 KAEDAH PANGGILAN b->m1( ).
 panggil KAEDAH b->m2( ).
 TAMAT.
 ******** 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 JADUAL JENIS ty_data, lt_user JENIS JENIS ty_data.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 PISAH lv_string PADA ',' KE DALAM JADUAL lt_user.
 PISAH lv_string2 PADA ',' KE DALAM JADUAL lt_user2.
 LOOP PADA lt_user2 MENENTUKAN SIMBOL MEDAN( ).
 INSERT KE DALAM JADUAL lt_user.
 ENDLOOP.
 SORT lt_user BY auth.
 PADAMKAN PENDULIK BERSEDEPAN DARIPADA lt_user MEMBANDINGKAN auth.
 JIKA sy-subrc = 0.
 LOOP PADA lt_user MENYERAHKAN SIMBOL MEDAN( ).
 JIKA lv_string_final ADALAH AWAL.
 lv_string_final = -auth.
 LAIN.
 CONCATENATE lv_string_final -auth KE DALAM lv_string_final DIPISAHKAN OLEH ','.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

Tinggalkan komen

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.