ABAP Programında Casting

SINIF a1 TANIM.
 KAMU BÖLÜMÜ.
 VERİ: num1 TÜR i DEĞER 100.
 YÖNTEMLER:m1.
 SON SINIF.
 SINIF a1 UYGULAMA.
 YÖNTEM m1.
 YAZIN: 'a1:',sayı1.
 SON YÖNTEM.
 SON SINIF.
 SINIF b1 TANIM a1'DEN MİRAS.
 KAMU BÖLÜMÜ.
 YÖNTEMLER:m2, m1 YENİDEN TANIMLAMA.
 SON SINIF.
 SINIF b1 UYGULAMA.
 YÖNTEM m1.
 sayı1 = sayı1 .
 YAZIN: 'b1:',sayı1.
 SON YÖNTEM.
 YÖNTEM m2.
 YAZIN: 'B2 sınıfında M1'.
 SON YÖNTEM.
 SON SINIF.
 SEÇİMİN BAŞLANGICI.
 VERİ: a1 İÇİN REF TÜRÜ.
 VERİ: b TİP REF İÇİN b1.
 *veri: c tipi REF TO c1.
 ******************************************************* ************** NESNE OLUŞTUR b.
 bir = b.  "ÇAĞRI YÖNTEMİ a->m1( ).
 *çağrı YÖNTEM a->m2( ).  " süper sınıf ref kullanarak kendi alt sınıf yöntemlerine erişemiyoruz.
 YENİ HAT.
 b?=a.  " aşağı döküm CALL METHOD b->m1( ).
 YENİ HAT.
 ÇAĞRI YÖNTEMİ b->m2( ).
 ******************************************************* *************** "hata null ref NESNE oluştur a.
 b?=a.  "aşağı döküm hala dökümü veriyor METHOD b->m1( ).
 ******************************************************* *************** NESNE OLUŞTUR a.
 DENEMEK.
 b?=a.  "'NULL' nesne referans dökümü CATCH cx_sy_move_cast_error kullanmaya çalıştı.
 ÇAĞRI YÖNTEMİ b->m1( ).
 ENDTRY.
 ******************************************************* *************** NESNE OLUŞTUR a.
 NESNE OLUŞTUR b.
 DENEMEK.
 b?=a.
 cx_sy_move_cast_hatasını YAKALAYIN.
 ÇAĞRI YÖNTEMİ b->m1( ).
 YÖNTEM b->m2( ) çağırın.
 ENDTRY.
 SINIF lcl_shape TANIM.
 KAMU BÖLÜMÜ.
 YÖNTEMLER çizer.
 SON SINIF.
 CLASS lcl_circle TANIM, lcl_shape'DEN MALISIR.
 KAMU BÖLÜMÜ.
 YÖNTEMLER: YENİDEN TANIM, calc_area çizin.
 SON SINIF.
 SINIF lcl_shape UYGULAMASI.
 YÖNTEM çekilişi.
 YAZIN :/ 'Herhangi Bir Şekil Çizmek'.
 SON YÖNTEM.
 SON SINIF.
 SINIF lcl_circle UYGULAMASI.
 YÖNTEM çekilişi.
 YAZIN :/ 'Belirli bir şekil çizme: Daire'.
 SON YÖNTEM.
 YÖNTEM hesap_alanı.
 YAZIN :/ 'Krcle Alanı = 2iiR'.
 SON YÖNTEM.
 SON SINIF.
 SEÇİMİN BAŞLANGICI.
 VERİ : o_cir TÜRÜ REF İÇİN lcl_circle.
 NESNE OLUŞTUR o_cir.
 ÇAĞRI YÖNTEMİ o_cir->draw().  " alt sınıf Draw() yöntemini çağırır CALL METHOD o_cir->calc_area().
 ULINE.
 "-------- Dar yayın(Upcast)---------------" VERİ : o_shp TÜR lcl_shape REF.
 o_shp = o_cir.  " Dar cast(Upcast) ÇAĞRI YÖNTEMİ o_shp->draw( ).  " alt sınıf Draw() yöntemini çağırır "çağrı YÖNTEM o_shp->calc_area() .  " derleme hatası ULINE.
 "---------- Genişletme Cast(Downcast) -----------" VERİ : o_cir1 TÜR REF TO lcl_circle.
 " o_cir1 = o_shp.  " derleme hatası o_cir1 ?= o_shp.  " Genişletme Cast(Downcast) ÇAĞRI YÖNTEMİ o_cir1->draw( ).  " alt sınıf Draw() yöntemini çağırır CALL METHOD o_cir1->calc_area().
 SINIF a1 TANIM.
 KAMU BÖLÜMÜ.
 VERİ: num1 TÜR i DEĞER 100.
 YÖNTEMLER:m1.
 SON SINIF.
 SINIF a1 UYGULAMA.
 YÖNTEM m1.
 YAZIN: 'a1:',sayı1.
 SON YÖNTEM.
 SON SINIF.
 SINIF b1 TANIM a1'DEN MİRAS.
 KAMU BÖLÜMÜ.
 YÖNTEMLER:m2, m1 YENİDEN TANIMLAMA.
 SON SINIF.
 SINIF b1 UYGULAMA.
 YÖNTEM m1.
 sayı1 = sayı1 .
 YAZIN: 'b1:',sayı1.
 SON YÖNTEM.
 YÖNTEM m2.
 YAZIN: 'B2 sınıfında M1'.
 SON YÖNTEM.
 SON SINIF.
 SEÇİMİN BAŞLANGICI.
 VERİ: ebeveyn TİPİ REF - a1.
 VERİ: çocuk TİPİ REF TO b1.
 *veri: c tipi REF TO c1.
 ******************************************************* **************** NESNE OLUŞTUR çocuk.
 ebeveyn = çocuk.  "ÇAĞRI YÖNTEMİ ebeveyn->m1( ).
 ÇAĞRI YÖNTEMİ çocuk->m1( ).
 ÇAĞRI YÖNTEMİ çocuk->m2( ).
 *çağrı YÖNTEM a->m2( ).  " süper sınıf ref kullanarak kendi alt sınıf yöntemlerine erişemiyoruz.
 YENİ HAT.
 çocuk ?= ebeveyn.  " aşağı döküm CALL METHOD alt->m1( ).
 YENİ HAT.
 ÇAĞRI YÖNTEMİ çocuk->m2( ).
 ******************************************************* **************** *" error null ref * NESNE oluştur a.
 *b ?= a.  "aşağı döküm hala dökümü veriyor *çağrı YÖNTEM b->m1( ).
 ******************************************************* **************** * NESNE OLUŞTUR a.
 DENEMEK.
 b?=a.  "'NULL' nesne referans dökümü CATCH cx_sy_move_cast_error kullanmaya çalıştı.
 ÇAĞRI YÖNTEMİ b->m1( ).
 ENDTRY.
 ******************************************************* **************** * NESNE OLUŞTUR a.
 NESNE OLUŞTUR b.
 DENEMEK.
 b?=a.
 cx_sy_move_cast_hatasını YAKALAYIN.
 ÇAĞRI YÖNTEMİ b->m1( ).
 YÖNTEM b->m2( ) çağırın.
 ENDTRY.
 ******** Benzersiz Değerler****************** VERİ : lv_string TÜR dizi, lv_string2 TÜR dizi, lv_string_final TÜR dizi.
 TÜRLER: ty_data BEGIN OF ty_data, auth TYPE c, END OF ty_data.
 VERİ: ls_user TİP ty_data, ls_user2 TÜR ty_data, lt_user2 ty_data TÜRÜ TABLOSU, lt_user TÜR ty_data TABLOSU.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 SPLIT lv_string AT ',' INTO TABLE lt_user.
 SPLIT lv_string2 AT ',' TABLOYA lt_user2.
 LT_user2'DE DÖNGÜ ALAN SEMBOL ATAMA( ).
 SOKMAK INTO TABLE lt_user.
 ENDLOOP.
 Yetkiye göre lt_user SIRALA.
 lt_user COMPARING auth.
 EĞER sy-subrc = 0.
 LT_user'DA DÖNGÜ ALAN SEMBOL ATAMA( ).
 EĞER lv_string_final İLK DEĞİLDİR.
 lv_string_final = -auth.
 BAŞKA.
 BİRLEŞTİR lv_string_final -auth INTO lv_string_final ',' İLE AYRILMIŞTIR.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

Yorum Yap

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.