PDA

View Full Version : منظور از متدهای Static چیه؟



Developer Programmer
جمعه 01 شهریور 1387, 16:16 عصر
هرچی میخونم کمتر متوجه میشم که منظور از متدهای Static چیه و چه مزیتی برای تعریف دارن.
کسی میتونه لطفا به صورت واضح و کامل توضیح بده؟


public static double mean(int[] p) {
int sum = 0; // sum of all the elements
for (int i=0; i<p.length; i++) {
sum += p[i];
}
return ((double)sum) / p.length;
}//endmethod mean

Cold.82
جمعه 01 شهریور 1387, 17:05 عصر
دوست عزیز کلمه static باعث میشه که قبل از ایجاد نمونه ای از کلاس بشه از ان استفاده کرد بر فرض مثال باید متد main رو static تعریف کرد
تا قبل از ایجاد هرشی توسط jvm فراخوانی شود.
مثلا یک کاربرد static که من خیلی خوشم میاد الگوی طراحی singleton هست.
البته محدودیتهایی هم دارند تنها سایر متدهای static می تونند انها را فراخوانی کنند.
با داده های static فقط می تونند کارکنند

در مورد فراخوانیشون به اینصورت عمل می کنند


className.method();

در کل میشه گفت اعضایی از کلاس هستند به تنهایی و بدون ارجاع به کلاسی قابل استفاده هستند.

Developer Programmer
جمعه 01 شهریور 1387, 21:07 عصر
دوست عزیز کلمه static باعث میشه که قبل از ایجاد نمونه ای از کلاس بشه از ان استفاده کرد
یعنی نیازی به Create کردن کلاسش نیست؟

Cold.82
جمعه 01 شهریور 1387, 21:30 عصر
یعنی نیازی به Create کردن کلاسش نیست؟

خوب اره دیگه شما شی از کلاس ایجاد نمی کنید در حالت عدی بر فرض مثال شما یک کلاس به نام name1 دارین می خواین به متدهای عمومی اون دسترسی داشته باشین یا کلا اعضای عمومی اون کلاس, میاین یک ابجکتی از اون کلاس می سازین مثلا به این صورت


name1 objname1=new name1();بعد با همین ابجکت به اعضای کلاس دسترسی دارین .

ولی اگه بخواین به اعضای static کلاس name1 دسترسی داشته باشین به این صورت عمل می کنین


name1.staticmember();staticmember در اینجا یک متد static هست .

نمی دونم منظورم و خوب تونستم بیان کنم یا نه