private کردن methode و دسترسی دادن به اونها با متدهای setter و getter
ایجاد شده در ۱۸ بهمن ۱۳۹۹
سلام و خسته نباشید خدمت استاد آوند
توی ویدئوها گفتید که بهتر این هست که از سطح دسترسی private استفاده کنیم و دسترسی رو با متدهای getter و setter بدیم . سوال من اینه که آیا برای متدها هم باید این کار رو بکنیم یا این قانون فقط برای ویژگیها هست .
سلام جناب پدیدار
ببخشید اگه من جواب میدم فقط خواستم یک نکته ای رو بگم خدمتتون
ببینید از private زمانی استفاده میشه که بخوایم دسترسی به یک متد یا ویژگی رو محدود کنیم.
حالا سوالی که پیش میاد این هستش که واسه چه متدهایی از private باید استفاده کنیم؟
برای تمام متدهایی که کارهای اصلی یک کلاس رو انجام میدن و اینکه نیازی نیست کاربرها از بیرون به اون دسترسی داشته باشند ما از private استفاده میکنیم
یک مثال میزنم که بهتر درک کنید
شما فرض کنید میخواین از خودپرداز بانک؛ پول دریافت کنید:
آیا شما کارهایی که در پشت صحنه انجام میشه تا پول بهتون داده بشه رو میبینید؟
مثلا نحوه اینکه چطور موجودی حساب چک میشه یا اینکه چطور پول از حساب کم میشه؟
ما هیچ کدوم از این کارها رو نمیبینی و فقط اگر موجودی نداشته باشیم؛ بهمون میگه که موجودی کافی نیست ولی اینگه چه گارهایی انجام شده تا موجودی ما چک بشه رو ما نمیبینیم
حالا شما هر کلاسی که مینویسی رو؛ از بیرون بهش نگاه کن
ببین ایا نیازه خارج از اون کلاس کسی به متدهای شما دسترسی داشته باشه یا نه ؟
مثلا یک ماشین حساب رو در نظر بگیر
آیا منی که با ماشین حساب کار میکنم نیاز هست بدون عمل جمع 2 عدد چطور انجام میشه؟
خیر نیاز نیس فقط میخوام 2 عدد رو جمع کنم
یا مثلا یک ساعت رو در نظر بگیرید
ایا نیاز هست گه وقتی من یک alaram میذارم؛ بدونم که اون پشت چه اتفاقی میفته ؟
باز هم نیازی نیست
پس هر موقع خواستید کلاس تعریف کنید ببینید ایا نیاز هست که کاربرها به
فلان متد دسترسی داشته باشند یا خیر
متدهایی که کارهای مهم رو انجام میدن؛ باید private باشند
amir tavakolian۱۸ بهمن ۱۳۹۹، ۱۵:۴۵
سلام و احترام
شما میتونید متدهایی رو private قرار بدید که دسترسی کاربر به اونا از بیرون میتونه خطرناک باشه و مشکل ایجاد کنه، پس میایید متدهای که اهمیت زیادی دارن و صرفا نمیخواید کسی بهشون دسترسی پیدا کنه اونا رو private قرار میدید.