Cài đặt tính đóng gói:

Một phần của tài liệu ABAP programming I ppt (Trang 41 - 45)

II. Lập trình hướng đối tượng trong ABAP 1 Lớp trong ABAP:

c. Cài đặt tính đóng gói:

Thay vì định nghĩa các thành phần trong lớp, bạn có thể cài đặt tính đóng gói bằng interface - là các lớp đặc biệt không chứa phần cài đặt. Sau đó bạn có thể định nghĩa các phương thức, sự kiện, thuộc tính trong một giao diện và cài đặt chúng trong các lớp khác.

Tất cả các lớp trong chương trình có thể truy cập các thành phần được định nghĩa trong interface. Do đó interface giúp bạn tạo nhiều chương trình phức tạp.

Sử dụng câu lệnh interface để định nghĩa interface: interface interface name.

" statements to define components. endinterface.

Khi bạn muốn truy cập các thành phần của một interface trong một lớp, bạn cần định nghĩa interface trong lớp bằng câu lệnh interface.

interface interface name. interface employee.

data name(15) type c. methods display_name. endinterface.

class managers defnition. protected section.

interfaces employee.

endclass.

class managers implementation. method display_name.

endmethod. endclass.

Định nghĩa lại phương thức trong lớp con sử dụng từ khoá redefinition trong câu lệnh methods.

methods method name redefinition. Ví dụ:

class products definition inheriting from company. methods display_attributes redefinition.

Giả sử bạn định nghĩa phương thức "fuel_needed" trong lớp "vehicle". Phương thức tính toán lượng nhiên liệu mà phương tiện cần để đi du lịch một khoảng cách xác định. Bạn giả sử lượng nhiên liệu là 1/10 của khoảng cách.

class vehicle definition. public section.

methods : fuel_needed importing im_distance type i. data distance type i.

fuel type i. endclass.

class vehicle implementation. method fuel_needed.

distance = im_distance. fuel = distance / 10.

write : total fuel needed = ', fuel. endmethod.

endclasss.

Bạn muốn định nghĩa lớp con "car" và "truck" sử dụng phương thức "fuel_needed" để hiển thị lượng nhiên liệu mà xe hơi và xe tải cần. Giả sử fuel của xe hơi là 1/15*distance, xe tải là 1/5*distance.

Bạn muốn phương thức "fuel_needed" tạo ra hai kết quả khác nhau khi "car" và "truck" gọi nó. Do đó bạn cần định nghĩa lại phương thức trong cả hai lớp con. Đầu tiên định nghĩa lớp "car".

class car definition inheriting from vehicle. public section.

methods : fuel_needed redefinition. endclasss.

class car implementation. method fuel_needed.

distance = im_distance. fuel = distance / 15.

write : / 'total fuel needed for a car is:', fuel. endmethod.

endclasss.

*--- class truck definition inheriting from vehicle. public section.

methods : fuel_needed redefinition. endclass.

class truck implementation. method fuel_needed.

distance = im_distance. fuel = distance / 5.

write : / 'total fuel needed for a truck is:', fuel. endmethod.

endclass.

Định nghĩa các biến của lớp con, tạo đối tượng cho cả hai lớp trong vùng start-of- selection.

data r_car type ref to car. data r_truck type ref to truck. data fuel type i.

parameter r_dis type i. start-of-selection.

create object r_car. create object r_truck.

r_car->fuel_needed( im_distance = r_dis ). r_truck->fuel_needed ( im_distance = r_dis ).

Một phần của tài liệu ABAP programming I ppt (Trang 41 - 45)

Tải bản đầy đủ (DOC)

(116 trang)
w