PDA

View Full Version : امکان استفاده از تابع درون کلاس بدون ساختن شی ء



donya100
شنبه 01 خرداد 1389, 12:09 عصر
سلام
من یک کلاس دارم که درونش چند متد تعریف کردم . امکانش هست که بدون ساختن شی ء از متد درون این کلاس استفاده کنم؟
متد را به صورت static هم تعریف کردم . اما باز هم اسم کلاس باید آورده بشه . در ضمن یه کمی در استفاده به صورت static تردید دارم.

اَرژنگ
شنبه 01 خرداد 1389, 12:24 عصر
سلام
من یک کلاس دارم که درونش چند متد تعریف کردم . امکانش هست که بدون ساختن شی ء از متد درون این کلاس استفاده کنم؟
متد را به صورت static هم تعریف کردم . اما باز هم اسم کلاس باید آورده بشه . در ضمن یه کمی در استفاده به صورت static تردید دارم.
برایه چه به چنین چیزی نیاز هست؟
استفاده از استاتیک بدانه دلیل برمیگرده به برنامه‌نویسی غیره شیگرائی
وقتی که میشه نمونه ساخت و ازش استفاده کرد چرا که نه؟ دلیلی برایه استفاده نکردن از ساخت نمونه دارید؟ مشکل اصلی چیه؟

donya100
شنبه 01 خرداد 1389, 14:19 عصر
در پروژه یک کلاس تعریف کردم که توابعی که خیلی باهاش کار داشتم رو در اون کلاس قرار دادم. چون به توابع درون این کلاس زیاد نیاز دارم برام سخته هر بار بخوام نمونه بسازم . البته میشه یه شی ء از کلاس رو public تعریف کردو ازش استفاده کرد . می خواستم بدونم راه بهتری نداره ؟

اَرژنگ
شنبه 01 خرداد 1389, 15:51 عصر
در پروژه یک کلاس تعریف کردم که توابعی که خیلی باهاش کار داشتم رو در اون کلاس قرار دادم. چون به توابع درون این کلاس زیاد نیاز دارم برام سخته هر بار بخوام نمونه بسازم . البته میشه یه شی ء از کلاس رو public تعریف کردو ازش استفاده کرد . می خواستم بدونم راه بهتری نداره ؟
راه بهتر این است که کار کردن با توابع را فراموش کنید و با اشیا کار کنید، مثلاً همین توابعی که باهاشان کار میکنید ، چکار انجام میدن؟ یا اینکه کاری که انجام میدن بر چه چیزی انجام میدن؟
به جایه تابعی فکر کنید ، شئیی فکر کنید، مثال توابع را بفرستید ما جایه درست براشان تو پروژه پیدا میکنیم.
البته اگر شیگرا میخواهید کار کنید.

sia_2007
شنبه 01 خرداد 1389, 16:11 عصر
در شی گرایی تعریفی برای کلاس متدهای پر استفاده نداریم.

FastCode
شنبه 01 خرداد 1389, 16:22 عصر
در شی گرایی تعریفی برای کلاس متدهای پر استفاده نداریم.
ولی توی جک ها بهشون میگیم GODClass:قهقهه:

Saeed.Masoumi
شنبه 01 خرداد 1389, 18:45 عصر
در شی گرایی تعریفی برای کلاس متدهای پر استفاده نداریم.
سلام
کلاس Math پر استفادست متدهاش استاتیک تعریف شده. حتی پای هم به صورت ثابت تعریف شده ( که اون هم پر استفادست).یک توضیحی راجع به این میدین؟


به جایه تابعی فکر کنید ، شئیی فکر کنید
آقای آرژنگ می شه را جع به این بیشتر توضیح بدین؟و برای مثال همون کلاس Math را مثال بزنید.
ممنون

sia_2007
یک شنبه 02 خرداد 1389, 00:00 صبح
تمامی Member های مربوط به هم در یک کلاس Encapsulate میشوند؛
برای مثال ؛ ID و Name و Age یک انسان در کلاس Person قرار داده میشوند.
کلاس Math هم موارد مربط به هم رو فارق از مهم بودن یا نبودن رو در خودش قرار داده.
اما این دلیل نمیشه که ما Member های پر مصرف رو داخل یه کلاس بذاریم؛ چون تنها وجه مشترکشون ؛ پر استفاده بودنشونه؛ حالا دیگه مهم نیست که یک متد لیست Employee ها رو از دیتابیس میخونه و یه متد دیگه هست که یه Message Box اختصاصی رو نشون میده.
و تنها دلیل قرار گرفتن این دو تا متد کنار هم در یک کلاس؛ پر استفاده بودنشان است !!!
حال بحث Static بودن و نبودن یک چیز دیگست.

ASKaffash
یک شنبه 02 خرداد 1389, 08:02 صبح
سلام
کلاس Math پر استفادست متدهاش استاتیک تعریف شده. حتی پای هم به صورت ثابت تعریف شده ( که اون هم پر استفادست).یک توضیحی راجع به این میدین؟

سلام
شما موضوع مهمی را مطرح کردید که اهمیت امکان استفاده از متدهای Static را درون کلاس نشان می دهد مثلا فرض کنیم یک برنامه نویس در زمان کد نویسی نیاز به تابع Sin یک زاویه داشته باشد و فرضا قرار است از متد Static درون کلاس Math استفاده نکند آیا باید با استفاده از سری تیلور تابع Sin را پیاده سازی کرد ؟ چرا کلاسهای دات نت متد Sin را بصورت غیر استاتیکی در خود ندارند؟ بنظرمن استفاده از متدهای استاتیکی تضادی با برنامه نویسی شی گرا ندارد