Dear Friends,
I have a query related to Object Oriented program where I have to maintain customer's record i.e. customer id, customer name, and respective balance amount. As I have crafted a small program can anybody tell me is this the correct way which I have developed? Or any alteration required / or how to develop such kind of OO programs especially we have to manage more complex records (insert/update/delete).
In this program I have created 2 customers with respective amount i.e.
ID-NAME-BALANCE
1-CUSTOMER1-1000
2-CUSTOMER2-500
And withdraw amount from customer1's account
(Pl. suggest me in program - Am I right or not the way of writing a code)
REPORT ZTEST_AVI.
CLASS CUSTOMER DEFINITION.
PUBLIC SECTION.
METHODS : CREATECUST IMPORTING VALUE(CID) TYPE I VALUE(CNM) TYPE CHAR50,
DISPCUST EXPORTING VALUE(DCID) TYPE I VALUE(DCNM) TYPE CHAR50.
PRIVATE SECTION.
DATA : ID TYPE I,
NM TYPE CHAR50.
ENDCLASS.
CLASS CUSTOMER IMPLEMENTATION.
METHOD CREATECUST.
ID = CID.
NM = CNM.
ENDMETHOD.
METHOD DISPCUST.
DCID = ID.
DCNM = NM.
ENDMETHOD.
ENDCLASS.
CLASS BANK DEFINITION.
PUBLIC SECTION.
METHODS : DEPOSIT IMPORTING VALUE(DPAMT) TYPE I,
WITHDRAW IMPORTING VALUE(WDAMT) TYPE I,
DISPLAY EXPORTING VALUE(BLN) TYPE I.
PRIVATE SECTION.
DATA : BALANCE TYPE I.
ENDCLASS.
CLASS BANK IMPLEMENTATION.
METHOD DEPOSIT.
BALANCE = BALANCE + DPAMT.
ENDMETHOD.
METHOD WITHDRAW.
BALANCE = BALANCE - WDAMT.
ENDMETHOD.
METHOD DISPLAY.
BLN = BALANCE.
ENDMETHOD.
ENDCLASS.
DATA :
C1 TYPE REF TO CUSTOMER,
B1 TYPE REF TO BANK .
DATA :
" FOR MULTIPLE CUSTOMER'S RECORD STORAGE
BEGIN OF ITAB OCCURS 0,
C1 TYPE REF TO CUSTOMER,
B1 TYPE REF TO BANK,
END OF ITAB.
START-OF-SELECTION.
" CREATE CUSTOMER AND THEIR DEPOSIT AMOUNT
CREATE OBJECT: C1,B1.
CALL METHOD C1->CREATECUST EXPORTING CID = 1 CNM = 'CUSTOMER1'.
CALL METHOD B1->DEPOSIT EXPORTING DPAMT = 1000.
ITAB-C1 = C1.
ITAB-B1 = B1.
APPEND ITAB.
CLEAR:C1,B1.
CREATE OBJECT: C1,B1.
CALL METHOD C1->CREATECUST EXPORTING CID = 2 CNM = 'CUSTOMER2'.
CALL METHOD B1->DEPOSIT EXPORTING DPAMT = 500.
ITAB-C1 = C1.
ITAB-B1 = B1.
APPEND ITAB.
CLEAR:C1,B1.
DATA : EID TYPE I,
ENM TYPE CHAR50,
BAL TYPE I.
" WITHDRAW AMOUNT FROM CUSTOMER'S ACCOUNT (CUSTOMER ID = 1)
LOOP AT ITAB.
C1 = ITAB-C1.
B1 = ITAB-B1.
CALL METHOD C1->DISPCUST IMPORTING DCID = EID DCNM = ENM.
IF EID EQ 1.
CALL METHOD B1->WITHDRAW EXPORTING WDAMT = 100.
ENDIF.
ENDLOOP.
" DISPLAY RECORDS
LOOP AT ITAB.
C1 = ITAB-C1.
B1 = ITAB-B1.
CALL METHOD C1->DISPCUST IMPORTING DCID = EID DCNM = ENM.
CALL METHOD B1->DISPLAY IMPORTING BLN = BAL.
WRITE : / EID,ENM,BAL.
ENDLOOP.
-Thanks,