Truyền trong Chương trình ABAP

ĐỊNH NGHĨA LỚP a1.
 PHẦN CÔNG CHÚNG.
 DỮ LIỆU: num1 LOẠI i GIÁ TRỊ 100.
 PHƯƠNG PHÁP: m1.
 KẾT THÚC.
 THỰC HIỆN LỚP a1.
 PHƯƠNG PHÁP m1.
 VIẾT: 'a1:', num1.
 KẾT THÚC.
 KẾT THÚC.
 LỚP b1 ĐỊNH NGHĨA LIỆT KÊ TỪ a1.
 PHẦN CÔNG CHÚNG.
 DIỆN TÍCH: m2, m1 GIẢM CÂN.
 KẾT THÚC.
 THỰC HIỆN LỚP b1.
 PHƯƠNG PHÁP m1.
 num1 = num1.
 VIẾT: 'b1:', num1.
 KẾT THÚC.
 PHƯƠNG PHÁP m2.
 VIẾT: 'M2 ở lớp b1'.
 KẾT THÚC.
 KẾT THÚC.
 BẮT ĐẦU LỰA CHỌN.
 DỮ LIỆU: MỘT LOẠI REF CHO a1.
 DỮ LIỆU: b KIỂU REF TO b1.
 * dữ liệu: c gõ REF TO c1.
 ************************************************** ************** TẠO ĐỐI TƯỢNG b.
 a = b.  "upcasting GỌI PHƯƠNG PHÁP a-> m1 ().
 * gọi PHƯƠNG PHÁP a-> m2 ().  "chúng ta không thể truy cập các phương thức của lớp con riêng bằng cách sử dụng siêu lớp ref.
 DÒNG MỚI.
 b? = a.  "xuống đúc CALL METHOD b-> m1 ().
 DÒNG MỚI.
 GỌI PHƯƠNG THỨC b-> m2 ().
 ************************************************** *************** "error null ref create OBJECT a.
 b? = a.  "xuống ép kiểu vẫn đưa ra lời gọi kết xuất Phương pháp b-> m1 ().
 ************************************************** *************** TẠO ĐỐI TƯỢNG a.
 CỐ GẮNG.
 b? = a.  "bạn đã cố gắng sử dụng kết xuất tham chiếu đối tượng 'NULL' CATCH cx_sy_move_cast_error.
 GỌI PHƯƠNG THỨC b-> m1 ().
 XIN LỖI.
 ************************************************** *************** TẠO ĐỐI TƯỢNG a.
 TẠO ĐỐI TƯỢNG b.
 CỐ GẮNG.
 b? = a.
 CATCH cx_sy_move_cast_error.
 GỌI PHƯƠNG THỨC b-> m1 ().
 gọi PHƯƠNG PHÁP b-> m2 ().
 XIN LỖI.
 ĐỊNH NGHĨA Lcl_shape CLASS.
 PHẦN CÔNG CHÚNG.
 PHƯƠNG PHÁP vẽ.
 KẾT THÚC.
 LỚP lcl_circle ĐỊNH NGHĨA TÍCH LŨY TỪ lcl_shape.
 PHẦN CÔNG CHÚNG.
 CÁC PHƯƠNG PHÁP: vẽ REDEFINITION, calc_area.
 KẾT THÚC.
 CLASS lcl_shape IMPLEMENTATION.
 PHƯƠNG PHÁP vẽ.
 VIẾT: / 'Vẽ bất kỳ hình dạng nào'.
 KẾT THÚC.
 KẾT THÚC.
 LỚP Lcl_circle THỰC HIỆN.
 PHƯƠNG PHÁP vẽ.
 VIẾT: / 'Vẽ hình cụ thể: Hình tròn'.
 KẾT THÚC.
 PHƯƠNG PHÁP calc_area.
 VIẾT: / 'Diện tích hình chóp = 2iiR'.
 KẾT THÚC.
 KẾT THÚC.
 BẮT ĐẦU LỰA CHỌN.
 DỮ LIỆU: o_cir LOẠI REF ĐẾN lcl_circle.
 TẠO ĐỐI TƯỢNG o_cir.
 GỌI PHƯƠNG THỨC o_cir-> draw ().  "gọi lớp con Draw () phương thức CALL METHOD o_cir-> calc_area ().
 ULINE.
 "--------- Diễn viên hẹp (Upcast) ---------------" DỮ LIỆU: o_shp LOẠI REF TO lcl_shape.
 o_shp = o_cir.  "Cast hẹp (Upcast) CALL METHOD o_shp-> draw ().  "gọi phương thức lớp con Draw ()" gọi METHOD o_shp-> calc_area ().  "lỗi biên dịch ULINE.
 "---------- Mở rộng Cast (Downcast) -----------" DỮ LIỆU: o_cir1 LOẠI REF CHO lcl_circle.
 "o_cir1 = o_shp.  "lỗi khiếu nại o_cir1? = o_shp.  "Mở rộng phương pháp GỌI Cast (Downcast) o_cir1-> draw ().  "gọi lớp con Draw () phương thức CALL METHOD o_cir1-> calc_area ().
 ĐỊNH NGHĨA LỚP a1.
 PHẦN CÔNG CHÚNG.
 DỮ LIỆU: num1 LOẠI i GIÁ TRỊ 100.
 PHƯƠNG PHÁP: m1.
 KẾT THÚC.
 THỰC HIỆN LỚP a1.
 PHƯƠNG PHÁP m1.
 VIẾT: 'a1:', num1.
 KẾT THÚC.
 KẾT THÚC.
 LỚP b1 ĐỊNH NGHĨA LIỆT KÊ TỪ a1.
 PHẦN CÔNG CHÚNG.
 DIỆN TÍCH: m2, m1 GIẢM CÂN.
 KẾT THÚC.
 THỰC HIỆN LỚP b1.
 PHƯƠNG PHÁP m1.
 num1 = num1.
 VIẾT: 'b1:', num1.
 KẾT THÚC.
 PHƯƠNG PHÁP m2.
 VIẾT: 'M2 ở lớp b1'.
 KẾT THÚC.
 KẾT THÚC.
 BẮT ĐẦU LỰA CHỌN.
 DỮ LIỆU: LOẠI cha REF TO a1.
 DỮ LIỆU: LOẠI con REF TO b1.
 * dữ liệu: c gõ REF TO c1.
 ************************************************** ************** TẠO ĐỐI TƯỢNG trẻ.
 cha mẹ = con.  "upcasting CALL METHOD cha-> m1 ().
 GỌI PHƯƠNG PHÁP con-> m1 ().
 GỌI PHƯƠNG PHÁP con-> m2 ().
 * gọi PHƯƠNG PHÁP a-> m2 ().  "chúng ta không thể truy cập các phương thức của lớp con riêng bằng cách sử dụng siêu lớp ref.
 DÒNG MỚI.
 con? = cha mẹ.  "xuống đúc CALL METHOD con-> m1 ().
 DÒNG MỚI.
 GỌI PHƯƠNG PHÁP con-> m2 ().
 ************************************************** **************** * "error null ref * create OBJECT a.
 * b? = a.  "xuống ép kiểu vẫn đưa ra kết xuất * gọi METHOD b-> m1 ().
 ************************************************** **************** * TẠO ĐỐI TƯỢNG a.
 CỐ GẮNG.
 b? = a.  "bạn đã cố gắng sử dụng kết xuất tham chiếu đối tượng 'NULL' CATCH cx_sy_move_cast_error.
 GỌI PHƯƠNG THỨC b-> m1 ().
 XIN LỖI.
 ************************************************** **************** * TẠO ĐỐI TƯỢNG a.
 TẠO ĐỐI TƯỢNG b.
 CỐ GẮNG.
 b? = a.
 CATCH cx_sy_move_cast_error.
 GỌI PHƯƠNG THỨC b-> m1 ().
 gọi PHƯƠNG PHÁP b-> m2 ().
 XIN LỖI.
 ******** Giá trị duy nhất ****************** DỮ LIỆU: chuỗi TYPE lv_string, chuỗi TYPE lv_string2, chuỗi TYPE lv_string_final.
 CÁC LOẠI: BẮT ĐẦU dữ liệu ty_data, LOẠI xác thực c, KẾT THÚC LOẠI ty_data.
 DỮ LIỆU: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 BẢNG LOẠI ty_data, lt_user BẢNG LOẠI ty_data.
 lv_string = 'a, b, c, a'.
 lv_string2 = 'd, b, c, a'.
 SPLIT lv_string AT ',' INTO TABLE lt_user.
 SPLIT lv_string2 AT ',' INTO TABLE lt_user2.
 ĐĂNG NHẬP TẠI lt_user2 ASSIGNING FIELD-SYMBOL ( ).
 CHÈN VÀO BẢNG lt_user.
 KẾT THÚC.
 SORT lt_user BY auth.
 XÓA CÁC KHOẢNG CÁCH XÓA ADJACENT khỏi lt_user SO SÁNH auth.
 IF sy-subrc = 0.
 ĐĂNG NHẬP TẠI lt_user ASSIGNING FIELD-SYMBOL ( ).
 NẾU lv_string_final LÀ BAN ĐẦU.
 lv_string_final = -mỹ.
 KHÁC.
 CONCATENATE lv_string_final -auth INTO lv_string_final ĐƯỢC RIÊNG BỞI ','.
 ENDIF.
 KẾT THÚC.
 ENDIF.

 

Để lại một bình luận

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách xử lý dữ liệu nhận xét của bạn.