Önsöz – Bu gönderi, ABAP Programları serisi.
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. DÖNGÜ. 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. ENDİF. DÖNGÜ. ENDİF.
0 Yorumlar