การห่อหุ้ม C++
การห่อหุ้ม
ความหมายของEncapsulationคือการทำให้แน่ใจว่าข้อมูลที่ "ละเอียดอ่อน" ถูกซ่อนจากผู้ใช้ เพื่อให้บรรลุสิ่งนี้ คุณต้องประกาศตัวแปร/แอตทริบิวต์ของคลาสเป็นprivate
(ไม่สามารถเข้าถึงได้จากภายนอกคลาส) หากคุณต้องการให้ผู้อื่นอ่านหรือแก้ไขค่าของสมาชิกส่วนตัว คุณสามารถจัดเตรียมวิธีการรับและตั้ง
ค่า แบบสาธารณะได้
เข้าถึงสมาชิกส่วนตัว
ในการเข้าถึงแอตทริบิวต์ส่วนตัว ใช้วิธี "get" และ "set" สาธารณะ:
ตัวอย่าง
#include <iostream>
using namespace std;
class Employee {
private:
// Private attribute
int salary;
public:
// Setter
void setSalary(int s) {
salary = s;
}
// Getter
int getSalary() {
return salary;
}
};
int
main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
ตัวอย่างอธิบาย
salary
แอ็ตทริบิวต์คือซึ่งprivate
มีการจำกัดการเข้าถึง
เมธอด สาธารณะsetSalary()
รับพารามิเตอร์ ( s
) และกำหนดให้กับ
salary
แอตทริบิวต์ (เงินเดือน = s)
วิธี สาธารณะgetSalary()
คืนค่าของsalary
แอตทริบิวต์ ส่วนตัว
ข้างในmain()
เราสร้างวัตถุของEmployee
ชั้นเรียน ตอนนี้เราสามารถใช้
setSalary()
วิธีการตั้งค่าของแอตทริบิวต์ส่วนตัว50000
เป็น จากนั้นเราเรียก
getSalary()
วิธีการบนวัตถุเพื่อคืนค่า
ทำไมต้องห่อหุ้ม?
- ถือเป็นแนวทางปฏิบัติที่ดีในการประกาศแอตทริบิวต์คลาสของคุณเป็นแบบส่วนตัว (บ่อยเท่าที่คุณจะทำได้) การห่อหุ้มช่วยให้ควบคุมข้อมูลของคุณได้ดีขึ้น เพราะคุณ (หรือผู้อื่น) สามารถเปลี่ยนส่วนหนึ่งของรหัสได้โดยไม่กระทบส่วนอื่นๆ
- เพิ่มความปลอดภัยของข้อมูล