PDA

View Full Version : سوال: چرا در کلاس های استاتیک امکان تعریف متد غیراستاتیک نداریم؟



irpersian20
دوشنبه 04 شهریور 1392, 12:53 عصر
سلام
چرا در کلاس های استاتیک امکان تعریف متد غیراستاتیک نداریم؟ چرا جلوی این کار گرفته شده است؟

sajad.net
دوشنبه 04 شهریور 1392, 13:00 عصر
فکر کن این امکان وجود داشته باشه
ما با کلاسی رو که به صورت static تعریف می کنیم داریم می گیم که امکان نمونه سازی از این کلاس وجود نداره اما وقتی بتونی یه عضو غیر استاتیک توی این کلاس تعریف کنی برای دسترسی به این عضو باید نمونه سازی انجام بدی در حالی که امکان نمونه سازی از کلاس وجود نداره حالا چه طور می خوای به این عضو دسترسی داشته باشی؟

irpersian20
دوشنبه 04 شهریور 1392, 13:01 عصر
ممنون. چرا از یک متد استاتیک به فیلد یا خاصیت غیراستاتیک نمیتوانیم دسترسی داشته باشیم؟آنجا دیگر بحث نمونه سازی نیست.

sajad.net
دوشنبه 04 شهریور 1392, 13:15 عصر
بازم بحث نمونه سازی می شه
وقتی که یه نمونه از یک کلاس می سازی سازنده ای که از کلاس رو که فراخوانی می کنی معمولا شامل دستوراتیه که کلاس رو برای استفاده کردن اماده می کنه مثلا یه نوع int رو مقدار دهی می کنه در حالی که متد استاتیک بدون نمونه سازی می تونه فراخوانی بشه پس چون که این کلاس برای استفاده اماده نیست یعنی مقدار نوع int قابل اعتماد نیست و این نوع int رو ما در یه متد استاتیک استفاده کنیم احتمال داره که داده ها نا معتبر رو پردازش کنیم زیاده