+1 امتیاز
قبل در برنامه نویسی توسط (760 امتیاز)
ویرایش شده قبل توسط
در C# یه زمانی هست که ما مینویسیم :  Person NewPerson = new Person

یزمانی هم هست که بدون new کردن می نویسیسم : Person و دات رو که می زنیم ، به توابع و پرواپرتی هاش دسترسی داریم

محبت کنید کامل بفرمایید که :

1)  تفاوت این دو در چیست؟

2)  چه زمانی از آنها استفاده می کنیم؟

3)  مزیت و معایب؟  (سرعت، قدرت...)

4)  نکات و مطالبی که باید رعایت بشه رو خواهش می کنم بفرمایید.

1 پاسخ

+1 امتیاز
قبل توسط (136 امتیاز)
1- تفاوت در نوع کلاس ها است . کلاس nonstatic کلاسی است که برای دسترسی به متغییر ها و متد های آن باید از آن یک شی ساخته شود (البت متد ها و متغییر هایی که Access Modifier مناسب داشته باشند که از بیرون قابل دیدن باشد)

اما در کلاس static ما می توانیم به متدها و متغییر های آن بدون ساخت شی دسترسی داشته باشیم و اصولا

هر type که static تعریف شود برای کل کلاس محسوب می شود

مزیت ها

1- بدون ساخت شی از کلاس می توان متد ها و متغییرهای static را فراخوانی کرد .

2- می توانیم کنترل هایی را بروی کلاس انجام بدهیم مثلا تعداد Object های ساخته شده را می توان همواره با یک متد Static مورد بررسی قرار داد و متناسب با آن عمل کرد (Patern Singleton)

کلا مبحث کارا و مفیدی است و اگر دقت کرده باشد متد Main نیز Static است کلاس Static در جاوا نداریم و فقط inner Class Static داریم یا بهتر بگیم  Nested Class

و در کلاس های Static باید تمامی متدها و متغییر ها Static باشند
سوال شده 10 سال قبل در برنامه نویسی توسط (760 امتیاز)
برچسب گذاری دوباره 10 سال قبل توسط
کلاس های استاتیک در C# فضای حافظه را اشغال می کنند؟
قبل توسط (868 امتیاز)
+1
من اینو تکمیل کنم ، با یه مثال ساده :
کلاس هایی که استاتیک نیستن ، مثه اینن که شما یا توپو روی یه کاغذ نقاشی کردی ، تا زمانیکه اون توپ به شکل یه شی واقعی به وجود نیاد ، نمیتونی باش بازی کنی منظور new کردن و ساختن یه شی از روی کلاس هستش

ولی کلاس های استاتیک ، به صورت مستقل وجود دارن ، چون به هیچ شی وابسطه نیستن در نتیجه مستقیم میتونیم ازشون استفاده کنیم :)

سوالات مشابه

+2 امتیاز
1 پاسخ 840 بازدید
+1 امتیاز
1 پاسخ 296 بازدید
0 امتیاز
1 پاسخ 661 بازدید
+1 امتیاز
1 پاسخ 743 بازدید
0 امتیاز
1 پاسخ 270 بازدید
0 امتیاز
0 پاسخ 441 بازدید
0 امتیاز
1 پاسخ 493 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط Rambodxzx (60 امتیاز)
+1 امتیاز
2 پاسخ 3.2هزار بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Ali9978 (5 امتیاز)
...