หลายคนอาจจะคุ้นเคยกับหลักการของการเขียนโปรแกรมแบบวัตถุ (Object-Oriented Programming - OOP) ในภาษาโปรแกรมสมัยใหม่เช่น Java, C++ หรือ Python แต่น้อยคนนักที่จะรู้ว่า COBOL ภาษาโปรแกรมที่เริ่มสร้างขึ้นในยุค 60 นั้นก็มีความสามารถในการทำงานด้วยหลักการ OOP รวมถึงการใช้งาน inheritance ซึ่งเป็นหนึ่งในสี่หลักการหลักของ OOP การสืบทอดคุณสมบัติ (Inheritance) นั้นช่วยให้เราสามารถสร้างคลาสใหม่ๆ ที่มีคุณสมบัติเหมือนหรือคล้ายกับคลาสที่มีอยู่แล้ว ทำให้เราไม่จำเป็นต้องเขียนโค้ดซ้ำซากและทำให้โค้ดของเรามีคุณภาพและยืดหยุ่นมากขึ้น
ก่อนที่เราจะไปสู่ตัวอย่างโค้ด COBOL เราต้องขออภัยที่ต้องแจ้งว่า COBOL ไม่ได้รองรับการใช้งาน inheritance ในแบบที่ภาษา OOP อื่นๆ ทำ แต่เราสามารถจำลองการทำ inheritance ผ่านการโปรแกรม procedure-oriented ด้วยการใช้ COPY หรือ CALL ได้ ซึ่งใน COBOL การใช้ CALL จะทำให้เราสามารถเรียกใช้โค้ดที่เขียนแยกอย่างโปรแกรมหรือฟังก์ชันย่อยได้ มาดูตัวอย่างการจำลองการสืบทอดคุณสมบัติโดยใช้ CALL กัน:
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN-PROGRAM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEE-DATA.
05 EMPLOYEE-NAME PIC A(30).
05 EMPLOYEE-POSITION PIC A(20).
05 EMPLOYEE-SALARY PIC 9(5).
PROCEDURE DIVISION.
PERFORM INITIALIZE-EMPLOYEE-DATA
PERFORM SHOW-EMPLOYEE-DATA
STOP RUN.
INITIALIZE-EMPLOYEE-DATA.
MOVE "John Doe" TO EMPLOYEE-NAME
MOVE "Developer" TO EMPLOYEE-POSITION
MOVE 45000 TO EMPLOYEE-SALARY
.
SHOW-EMPLOYEE-DATA.
DISPLAY "Name: " EMPLOYEE-NAME
DISPLAY "Position: " EMPLOYEE-POSITION
DISPLAY "Salary: " EMPLOYEE-SALARY
.
END PROGRAM MAIN-PROGRAM.
IDENTIFICATION DIVISION.
PROGRAM-ID. MANAGER-PROGRAM.
INHERITS FROM MAIN-PROGRAM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 BONUS-SALARY PIC 9(5).
PROCEDURE DIVISION.
PERFORM INITIALIZE-MANAGER-DATA
PERFORM SHOW-MANAGER-DATA
STOP RUN.
INITIALIZE-MANAGER-DATA.
CALL "MAIN-PROGRAM" USING EMPLOYEE-DATA
MOVE 10000 TO BONUS-SALARY
.
SHOW-MANAGER-DATA.
DISPLAY "Name: " EMPLOYEE-NAME
DISPLAY "Position: " EMPLOYEE-POSITION
DISPLAY "Salary+Bonus: " EMPLOYEE-SALARY + BONUS-SALARY
.
END PROGRAM MANAGER-PROGRAM.
ในตัวอย่างนี้ เราจะเห็นว่า `MANAGER-PROGRAM` จะ "สืบทอด" ข้อมูลบางส่วนจาก `MAIN-PROGRAM` และเพิ่มเติมด้วย `BONUS-SALARY` โดยใช้คำสั่ง CALL ในการเข้าถึงข้อมูลใน EMPLOYEE-DATA และแสดงผลออกมา โดยที่ไม่ต้องเขียนโค้ดในส่วนของ EMPLOYEE-DATA และ SHOW-EMPLOYEE-DATA ซ้ำอีกครั้งใน `MANAGER-PROGRAM`
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: inheritance oop cobol object-oriented_programming procedure-oriented_programming call code_example usecase employee_management banking_system
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM