# ความสำคัญของการใช้งาน Accessibility ใน OOP Concept ของภาษา ABAP
การเขียนโปรแกรม Object-Oriented Programming (OOP) ได้เปลี่ยนแปลงวิธีที่นักพัฒนามองเห็นและแก้ไขปัญหาโดยให้ความสำคัญกับการจัดระเบียบโค้ดและการรีไซเคิลโค้ดได้มากที่สุด เมื่อพูดถึง OOP ในภาษา ABAP คุณจะได้พบกับการใช้งาน concept ที่เรียกว่า Accessibility หรือการควบคุมการเข้าถึง attributes และ methods ภายใน Class วันนี้เราจะมาพูดถึง concept ดังกล่าวพร้อมด้วยตัวอย่าง code สามตัวอย่างที่ยกตัวอย่างได้อย่างชัดเจนว่ามันสามารถใช้งานได้อย่างง่ายดายอย่างไร แถมยังมี use case จากโลกจริงที่จะช่วยให้เราเห็นภาพการใช้งานได้ดียิ่งขึ้น หลังจากนั้นเราจะทำความเข้าใจว่าทำไมนักพัฒนาถึงควรเรียนรู้การเขียนโปรแกรมเชิงวัตถุที่ EPT เพื่อเพิ่มพูนทักษะและเข้าใจโคนเซ็ปต์แบบลึกซึ้งยิ่งขึ้น
Accessibility ใน OOP คือการกำหนดระดับการเข้าถึง (Access Levels) ของ properties และ methods ภายใน class ทั้งนี้เพื่อจำกัดความสามารถในการเรียกใช้หรือแก้ไขจากนอก class หรือจาก subclass ที่สืบทอดมา ภาษา ABAP ใช้สิทธิ์การเข้าถึงสามระดับ ได้แก่:
1. Public: สามารถเข้าถึงได้จากทุกที่ที่มีการสร้าง object ของ class นั้นๆ 2. Protected: สามารถเข้าถึงได้ภายใน class ที่มีการประกาศไว้ และจาก subclass ที่สืบทอด 3. Private: สามารถเข้าถึงได้เฉพาะภายใน class ที่ประกาศ attributes หรือ methods นั้น
ตัวอย่างที่ 1: การกำหนด Public Methods
CLASS cl_employee DEFINITION.
PUBLIC SECTION.
METHODS: display_details.
ENDCLASS.
CLASS cl_employee IMPLEMENTATION.
METHOD display_details.
" Code to display employee details
ENDMETHOD.
ENDCLASS.
DATA: obj TYPE REF TO cl_employee.
CREATE OBJECT obj.
CALL METHOD obj->display_details. " Accessible from outside the class
ตัวอย่างนี้แสดงถึงการสร้าง method `display_details` ซึ่งถูกกำหนดว่าเป็น public ดังนั้นเมื่อมีการสร้าง object `obj` สามารถเรียกใช้ method นี้ได้จากนอก class.
ตัวอย่างที่ 2: การใช้งาน Protected Methods
CLASS cl_person DEFINITION.
PROTECTED SECTION.
DATA: date_of_birth TYPE d.
ENDCLASS.
CLASS cl_employee DEFINITION INHERITING FROM cl_person.
PUBLIC SECTION.
METHOD display_age.
ENDCLASS.
CLASS cl_employee IMPLEMENTATION.
METHOD display_age.
WRITE: / 'Age is', cl_abap_date_utilities=>calculate_age( date_of_birth ).
ENDMETHOD.
ENDCLASS.
DATA: emp TYPE REF TO cl_employee.
CREATE OBJECT emp.
emp->display_age(). " Calculates age using protected attribute date_of_birth
ในตัวอย่างนี้ `date_of_birth` เป็น attribute ที่ถูกประกาศเป็น protected ใน class `cl_person` แต่สามารถถูกใช้ใน subclass `cl_employee` เพื่อคำนวณอายุ.
ตัวอย่างที่ 3: การจำกัดการเข้าถึงด้วย Private Attributes
CLASS cl_account DEFINITION.
PRIVATE SECTION.
DATA: account_balance TYPE p DECIMALS 2.
METHODS: update_balance IMPORTING amount TYPE p.
ENDCLASS.
CLASS cl_account IMPLEMENTATION.
METHOD update_balance.
account_balance = account_balance + amount.
ENDMETHOD.
ENDCLASS.
DATA: bank_account TYPE REF TO cl_account.
CREATE OBJECT bank_account.
" Cannot access account_balance directly from outside the class!
" CALL METHOD bank_account->account_balance = 100. " This will raise an error
ในตัวอย่างสุดท้ายนี้ `account_balance` เป็น private attribute จึงไม่สามารถเข้าถึงหรือแก้ไขจากนอก class ได้. เพื่อเปลี่ยนแปลงค่านั้นต้องใช้ method `update_balance` ที่เป็น public หรือ protected.
หนึ่งใน use case ที่สำคัญของการใช้งาน Accessibility ใน ABAP ก็คือการจัดการระบบธนาคาร ซึ่งต้องมีการควบคุมการเข้าถึงข้อมูลสำคัญอย่างเคร่งครัด เช่น:
- บัญชีลูกค้า (Customer Accounts): ข้อมูลทางการเงินควรเป็น private เพื่อป้องกันไม่ให้มีการเข้าถึงจากนอก class นอกจากนี้ methods ที่ทำการแก้ไขยอดเงินควรเป็น protected หรือ public แต่ถูกควบคุมด้วย logic ภายในที่รัดกุม - การจัดการพนักงาน (Employee Management): ข้อมูลส่วนตัวของพนักงานถูกเก็บใน attributes ที่เป็น protected เพื่อให้สามารถเข้าถึงได้ภายใน subclass เท่านั้น
การเข้าใจในตัวแนวคิด Accessibility ภายใน OOP ถือเป็นสิ่งที่จำเป็นสำหรับนักพัฒนา ABAP เพราะช่วยให้มั่นใจได้ว่าระบบของคุณจะมีความปลอดภัย มีการจัดการที่รัดกุม และรักษามาตรฐานของการเขียนโค้ดให้ง่ายต่อการบำรุงรักษา ต้องการเรียนรู้แนวคิดนี้แบบลึกซึ้งยิ่งขึ้นไหม? ที่ EPT เรามีคอร์สด้านการเขียนโปรแกรมที่จะนำคุณไปสู่ความเชี่ยวชาญ โดยเริ่มต้นจากพื้นฐานไปจนถึงระดับสูง ความรู้และประสบการณ์ที่คุณจะได้รับจาก EPT จะสามารถนำไปปรับใช้กับโลกแห่งการพัฒนาซอฟต์แวร์ในปัจจุบันได้อย่างมีคุณภาพ เราช่วยให้คุณก้าวสู่อนาคตในฐานะนักพัฒนา ABAP มืออาชีพได้อย่างมั่นใจ!
ลงทะเบียนเพื่อเรียนรู้การเขียนโปรแกรมอย่างมืออาชีพที่ EPT วันนี้ และเป็นส่วนหนึ่งของการสร้างนวัตกรรมใหม่ๆ ในโลกของเทคโนโลยีสารสนเทศ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: oop accessibility abap programming object-oriented_programming access_levels public_methods protected_methods private_attributes use_case real_world_example ept programming_skills banking_system employee_management
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM