کپسوله سازی (Encapsulation)
در «کپسوله سازی (Encapsulation)» داده های حساس پنهان می شوند. بنابراین، فقط روش های مطمئن به آن دست می زنند. برای این کار، صفت ها را private می گذاریم و با متدهای get و set کنترل می کنیم.
کپسوله سازی یعنی چه؟
هدف کپسوله سازی پنهان کردن داده حساس است. پس صفت ها را private تعریف کن. سپس برای خواندن یا تغییر، متدهای عمومی get و set بده.
نمونه واقعی
دستمزد کارمند را تصور کن:
- حقوق خصوصی است؛ کارمند مستقیم تغییرش نمی دهد.
- مدیر با اجازه آن را به روز یا اعلام می کند.
کپسوله سازی هم همین است. داده پنهان می ماند و فقط متدهای مطمئن دسترسی دارند.
دسترسی با get و set
برای دسترسی به عضو private از متدهای عمومی استفاده کن:
#include <iostream>
using namespace std;
class Employee {
private:
int salary;
public:
void setSalary(int s) {
salary = s;
}
int getSalary() {
return salary;
}
};
int main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
salaryخصوصی است و مستقیم قابل دسترسی نیست.setSalary()مقدار را تنظیم می کند.getSalary()مقدار را برمی گرداند.
چرا کپسوله سازی مهم است؟
- مرسوم است صفت ها را تا حد ممکن private بگذاریم.
- کنترل بهتر روی داده و تغییرات موضعی فراهم می شود.
- امنیت داده افزایش می یابد.
تمرین گام به گام
- یک کلاس بساز و یک صفت private بگذار.
- متدهای
setوgetعمومی تعریف کن. - در
main()مقدار بده و سپس چاپ کن.
نکته: درباره سطح دسترسی ها در مشخصه های دسترسی بخوان. همچنین پایه ها را در کلاس ها/اشیاء مرور کن. اگر نیاز داشتی، همین صفحه کپسوله سازی را ذخیره کن.
جمع بندی سریع
- صفت ها را private نگه دار.
- با get و set کنترل کن.
- کد تمیزتر و امن تر می شود.
- تغییرات محلی ساده تر می شود.