การเข้าถึงสมาชิกของวัตถุในแนวคิด OOP ผ่านภาษา Delphi Object Pascal
การประยุกต์ใช้แนวคิดเชิงวัตถุ (Object-Oriented Programming - OOP) ในการเขียนโปรแกรมสามารถทำให้โค้ดของเราสะอาดและง่ายต่อการบำรุงรักษาได้เป็นอย่างดี ภาษา Delphi Object Pascal เป็นหนึ่งในภาษาโปรแกรมมิ่งที่แสดงออกถึงแนวคิด OOP ได้อย่างชัดเจน หนึ่งในคุณสมบัติสำคัญของ OOP ที่มีใน Delphi คือการจัดการกับการเข้าถึงสมาชิกของวัตถุ (accessibility) ซึ่งประกอบด้วยตัวแปรและฟังก์ชันที่สามารถจำกัดขอบเขตการเข้าถึงได้
ภาษา Delphi มีการกำหนดระดับการเข้าถึงของตัวแปร (variables) และฟังก์ชัน (methods) ได้แก่ `public`, `private`, `protected`, และ `published` เพื่อควบคุมว่าส่วนไหนของโปรแกรมที่สามารถเข้าถึงสมาชิกเหล่านั้นได้
1. `public` - สามารถเข้าถึงสมาชิกได้จากทุกที่
2. `private` - สามารถเข้าถึงสมาชิกได้เฉพาะภายในคลาสเดียวกัน
3. `protected` - เหมือนกับ `private` แต่ยังสามารถเข้าถึงในคลาสย่อยได้
4. `published` - ใช้สำหรับตัวแปรหรือฟังก์ชันที่ต้องการให้เข้าถึงได้จากทั้งภายในและภายนอกคลาส, มักใช้ในส่วนของ component properties that need to be visible in the Object Inspector
ต่อไปนี้เป็นตัวอย่างโค้ด 3 ตัวอย่างในภาษา Delphi Object Pascal ที่แสดงถึงการใช้งานระดับการเข้าถึงต่างๆ:
type
TPerson = class
private
fName: string;
public
procedure SetName(newName: string);
function GetName: string;
end;
procedure TPerson.SetName(newName: string);
begin
fName := newName;
end;
function TPerson.GetName: string;
begin
Result := fName;
end;
ในตัวอย่างนี้, `fName` เป็นตัวแปร `private` ที่ไม่สามารถเข้าถึงจากภายนอกคลาส `TPerson` โดยตรงได้ แต่สามารถเข้าถึงผ่าน methods `SetName` และ `GetName` ที่เป็นสาธารณะ `public`ได้
type
TEmployee = class(TPerson)
protected
fSalary: Integer;
public
function GetSalary: Integer;
procedure SetSalary(newSalary: Integer);
end;
function TEmployee.GetSalary: Integer;
begin
Result := fSalary;
end;
procedure TEmployee.SetSalary(newSalary: Integer);
begin
if newSalary > 0 then
fSalary := newSalary;
end;
ในตัวอย่างนี้, `TEmployee` มีการใช้ `protected` ใน `fSalary` ทำให้คลาสย่อยที่ได้จาก `TEmployee` สามารถเข้าถึง `fSalary` ได้
type
TManager = class(TEmployee)
public
function GetTotalIncome: Integer;
end;
function TManager.GetTotalIncome: Integer;
begin
Result := fSalary + 20000; // Bonus for manager
end;
ในตัวอย่างนี้, `TManager` ซึ่งเป็นคลาสย่อยของ `TEmployee` สามารถเข้าถึงตัวแปร `fSalary` ได้ เนื่องจาก `fSalary` มีคุณสมบัติเป็น `protected` เราสามารถเรียกดูรายได้รวมผ่าน `GetTotalIncome` ซึ่งเป็นฟังก์ชั่นที่เป็นสาธารณะ `public`
การจำกัดระดับการเข้าถึงไม่เพียงแต่ช่วยป้องกันการเข้าถึงข้อมูลที่ไม่ควรเกิดขึ้นเท่านั้น แต่ยังช่วยในการรักษาความปลอดภัยของข้อมูลในโปรแกรมของเราด้วย ตัวอย่างเช่นในระบบการจัดการพนักงานของบริษัท, การใช้ property `protected` ในการเข้าถึงข้อมูลของเงินเดือนจะช่วยให้มั่นใจว่าเฉพาะคลาสที่ได้รับอนุญาตเท่านั้นที่จะเข้าถึงข้อมูลการเงินนั้น ๆ ได้, ซึ่งจะป้องกันความผิดพลาดหรือการละเมิดข้อมูลส่วนบุคคล
นี่เป็นเพียงตัวอย่างเล็กน้อยของการทำงานกับ OOP ในภาษา Delphi Object Pascal หากคุณพบว่าคำอธิบายและตัวอย่างที่นำเสนอน่าสนใจและต้องการเรียนรู้มากขึ้นเกี่ยวกับ OOP หรือ Delphi, เราขอเชิญชวนคุณมาเพิ่มพูนความรู้และพัฒนาทักษะการเขียนโปรแกรมกับเราที่ EPT ที่นี่เรามีหลักสูตรที่จะช่วยให้คุณเข้าใจหลักการของ OOP อย่างลึกซึ้ง เพื่อสร้างแอพพลิเคชันที่มีโครงสร้างเข้มงวดและปลอดภัยมากยิ่งขึ้น!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM