private کردن methode و دسترسی دادن به اون ها با متدهای setter و getter

پرسیده شده
فعالیت 1177 روز پیش
دیده شده 408 بار
0

سلام و خسته نباشید خدمت استاد آوند

توی ویدئوها گفتید که بهتر این هست که از سطح دسترسی  private استفاده کنیم و دسترسی رو با متدهای getter و setter بدیم . سوال من اینه که آیا برای  متدها هم باید این کار رو بکنیم یا این قانون فقط برای ویژگی ها هست .

 

فایل پیوست

mahmood padidar
mahmood padidar

18 بهمن 99

2
حذف شده

سلام جناب پدیدار

ببخشید اگه من جواب میدم فقط خواستم یک نکته ای رو بگم خدمتتون

 

ببینید از private زمانی استفاده میشه که بخوایم دسترسی به یک متد یا ویژگی رو محدود کنیم.

حالا سوالی که پیش میاد این هستش که واسه چه متدهایی از private باید استفاده کنیم؟

 

برای تمام متدهایی که کارهای اصلی یک کلاس رو انجام میدن و اینکه نیازی نیست کاربرها از بیرون به اون دسترسی داشته باشند ما از private استفاده میکنیم

 

یک مثال میزنم که بهتر درک کنید

شما فرض کنید میخواین از خودپرداز بانک؛ پول دریافت کنید:

آیا شما کارهایی که در پشت صحنه انجام میشه تا پول بهتون داده بشه رو میبینید؟

مثلا نحوه اینکه چطور موجودی حساب چک میشه  یا اینکه چطور پول از حساب کم میشه؟

 

ما هیچ کدوم از این کارها رو نمیبینی و فقط اگر موجودی نداشته باشیم؛ بهمون میگه که موجودی کافی نیست ولی اینگه چه گارهایی انجام شده تا موجودی ما چک بشه رو ما نمیبینیم

 

 

حالا شما هر کلاسی که مینویسی رو؛ از بیرون بهش نگاه کن

ببین ایا نیازه خارج از اون کلاس کسی به متدهای شما دسترسی داشته باشه یا نه ؟

 

مثلا یک ماشین حساب رو در نظر بگیر

آیا منی که با ماشین حساب کار میکنم نیاز هست بدون عمل جمع 2 عدد چطور انجام میشه؟

خیر نیاز نیس فقط میخوام 2 عدد رو جمع کنم 

 

 

یا مثلا یک ساعت رو در نظر بگیرید 

ایا نیاز هست گه وقتی من یک alaram میذارم؛ بدونم که اون پشت چه اتفاقی میفته ؟

باز هم نیازی نیست

 

 

پس هر موقع خواستید کلاس تعریف کنید ببینید ایا نیاز هست که کاربرها به 

فلان متد دسترسی داشته باشند یا خیر 

 

متدهایی که کارهای مهم رو انجام میدن؛ باید private باشند 

فایل پیوست

amir tavakolian

توسط

amir tavakolian

18 بهمن 99

0
حذف شده

سلام و احترام

شما میتونید متدهایی رو private قرار بدید که دسترسی کاربر به اونا از بیرون میتونه خطرناک باشه و مشکل ایجاد کنه، پس میایید متدهای که اهمیت زیادی دارن و صرفا نمیخواید کسی بهشون دسترسی پیدا کنه اونا رو private قرار میدید.

موفق باشید

فایل پیوست

امیر صالحی

توسط

امیر صالحی

19 بهمن 99

حذف شده
سلام. این تعریف از access modifier ها درست نیست. برای مثال در خیلی از موارد برنامه نویس خودمون هستیم پس با این تعریف نیازی نیست چیزی رو از خودمون مخفی کنیم!! تعریف درستش در ویکی پدیا: Access modifiers (or access specifiers) are keywords in object-oriented languages that set the accessibility of classes, methods, and other members. Access modifiers are a specific part of programming language syntax used to facilitate the encapsulation of components
محسن موحد

22 بهمن 99

حذف شده
بله این حرف شما کاملا درسته ممنون ازتون، چون ایشون درباره setter و getter ها گفته بود خواستم بگم که نباید به طور مستقیم برای مثال یه متغیری در دسترس باشه شاید ما بخوایم یه سری کارای احراز هویت انجام بدیم.
امیر صالحی

22 بهمن 99