# Encapsulation ใน OOP Concept คืออะไร? พร้อมตัวอย่างการใช้งานในภาษา C
การเขียนโปรแกรมแบบวัตถุ (Object-Oriented Programming หรือ OOP) เป็นวิธีการที่ทำให้โปรแกรมเมอร์สามารถจัดการกับความซับซ้อนของโปรแกรมได้อย่างมีระบบและเป็นที่นิยมใช้กันอย่างแพร่หลายในการพัฒนาซอฟต์แวร์ หัวใจหลักของ OOP ประเมินได้ 4 ประการ: Encapsulation, Abstraction, Inheritance, และ Polymorphism. บทความนี้เราจะมาพูดคุยเกี่ยวกับ Encapsulation ซึ่งเป็นหนึ่งในคอนเซปต์พื้นฐานที่ทรงพลังของ OOP.
Encapsulation เป็นเทคนิคของการซ่อนรายละเอียดบางอย่างของ object ไม่ให้เปิดเผยไปยังส่วนอื่นๆ ของโปรแกรม โดยการรวมข้อมูล (properties) และวิธีการทำงาน (methods) เข้าไว้ด้วยกันในหนึ่ง object และการเปิดเผยเพียง interface เท่าที่จำเป็นต่อการใช้งาน. ในส่วนที่ซ่อนอยู่นั้น ไม่ควรถูกเข้าถึงได้โดยตรงจากภายนอก object เพื่อป้องกันไม่ให้ข้อมูลภายใน object ถูกเปลี่ยนแปลงอย่างไม่เหมาะสม และช่วยเพิ่มความปลอดภัยในการเขียนโค้ด.
ภาษา C เป็นภาษาที่แตกต่างจากภาษา OOP แท้จริง เช่น C++ หรือ Java ที่มีความสามารถในการจัดการกับวัตถุได้โดยตรงและมีคำสั่งพิเศษสำหรับ encapsulation อย่างไรก็ตาม เรายังสามารถทำการซ่อนข้อมูลได้ในหลักการของ encapsulation โดยการใช้ `struct` เพื่อสร้างโครงสร้างข้อมูลและการไฟล์แบ่งโค้ดเป็น `header` และ `source` ไฟล์.
ตัวอย่างโค้ด Encapsulation ภาษา C
ลองมาดูตัวอย่างการสร้าง object แบบง่ายที่มี encapsulation ในภาษา C:
// account.h
#ifndef ACCOUNT_H
#define ACCOUNT_H
// Object 'Account' structure
typedef struct {
private:
int balance;
public:
void (*deposit)(int);
int (*get_balance)(void);
} Account;
// Constructor function
Account create_account(int initial_balance);
#endif
// account.c
#include "account.h"
static void deposit(int amount) {
// ... รหัสการฝากเงิน
}
static int get_balance() {
// ... รหัสการดึงข้อมูลยอดเงิน
}
Account create_account(int initial_balance) {
Account acc = {initial_balance, deposit, get_balance};
return acc;
}
การทำงานของโค้ด
ในตัวอย่างที่ให้มานี้ `Account` เป็น struct ที่เก็บข้อมูลยอดเงิน (`balance`) ที่ถูกซ่อนอยู่ และมี pointer ไปยัง function `deposit` และ `get_balance` เพื่อให้เราสามารถเรียกใช้งานผ่านมันได้ หลังจากนั้นเราก็สร้าง function `create_account` ที่เป็น constructor ของ object นี้.
Usecase ในโลกจริง
1. System การจัดการพนักงาน (Employee Management System): Encapsulation ในระบบนี้ช่วยให้สามารถจัดเก็บรหัสประจำตัว, ชื่อ, และข้อมูลส่วนบุคคลของพนักงานได้อย่างปลอดภัย วิธีการเข้าถึงข้อมูลเหล่านั้นจะต้องดำเนินการผ่าน methods ที่ได้รับอนุญาตเท่านั้น. 2. การจัดการบัญชีธนาคาร (Banking Account Management): ใช้ encapsulation เพื่อปกป้องข้อมูลบัญชีและป้องกันการเข้าถึงยอดเงินหรือการทำธุรกรรมโดยไม่ได้รับอนุญาต.การเรียนรู้เกี่ยวกับ encapsulation และ concepts จาก OOP จะทำให้คุณสามารถพัฒนาซอฟต์แวร์ที่มีความปลอดภัยและสามารถยืดหยุ่นได้ ณ Expert-Programming-Tutor (EPT), เรามีคอร์สและการสอนที่จะช่วยให้คุณเข้าใจหลักการเหล่านี้ในระดับลึกและการประยุกต์ใช้ในโปรเจกต์จริง ไม่ว่าคุณจะเป็นผู้เริ่มต้นหรือมืออาชีพ.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: encapsulation oop object-oriented_programming c_programming struct constructor data_hiding methods header_file source_file constructor_function encapsulation_in_c encapsulation_example programming_concept
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM