مشخصه های دسترسی (Access Specifiers)
در ++C، «مشخصه های دسترسی (Access Specifiers)» تعیین می کنند چه کسی اعضای کلاس را ببیند. اعضا یعنی «صفت ها (Attributes)» و «متدها (Methods)». با آن ها داده را محافظت می کنی و کد مرتب می شود.
معرفی مشخصه های دسترسی
سه نوع داریم: public، private، و protected. public یعنی همه ببینند. private یعنی بیرون نتواند ببیند. protected یعنی فرزندها ببینند.
مثال public
کلیدواژه public یک «مشخصه دسترسی» است. یعنی اعضا از بیرون قابل دسترسی هستند.
class MyClass {
public:
// class members go here
};
تفاوت public و private
در private، بیرون کلاس نمی تواند عضو را تغییر دهد. تلاش برای دسترسی، خطا می دهد.
class MyClass {
public:
int x;
private:
int y;
};
int main() {
MyClass myObj;
myObj.x = 25;
myObj.y = 50;
return 0;
}
نکته: می توانی با یک متد عمومی، به اعضای private دسترسی بدهی. این ایده «کپسوله سازی (Encapsulation)» است. بعداً در کپسوله سازی می بینی.
پیش فرض در کلاس ها
اگر مشخصه ننویسی، اعضای کلاس به صورت پیش فرض private هستند.
class MyClass {
int x;
int y;
};
protected چیست؟
protected شبیه private است. اما کلاس های فرزند می توانند ببینند. درباره ارث بری در ارث بری ادامه می دهیم.
تمرین گام به گام
- یک کلاس ساده بساز.
- یک عضو public و یک عضو private بگذار.
- در
main()عضو public را تغییر بده. - تلاش کن عضو private را تغییر دهی و خطا را ببین.
نکته: معمولاً صفت ها را private بگذار. سپس با متدهای عمومی کنترل شان کن. این کار امن تر است.
اگر نیاز به شروع سریع داری، صفحه مشخصه های دسترسی را نشانه گذاری کن. برای پایه شی گرایی نیز به کلاس ها/اشیاء سر بزن.
جمع بندی سریع
- public یعنی همه جا قابل دسترسی.
- private یعنی بیرون دسترسی ندارد.
- protected یعنی فقط فرزندها دسترسی دارند.
- پیش فرض کلاس ها private است.
- بهتر است صفت ها private باشند.