آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تفاوت Static متد ها با متدهای غیر Static

sadeghbarout  10 سال پیش  6 سال پیش
+1 0

سلام دوستان

میخواستم ببینم دقیقا تفاوت متد های استاتیک با غیر استاتیک چیه؟

چه متد هایی رو نباید static تعریف کنیم؟

من معمولا هر کلاسی که مینویسم  متدهاش رو static میذارم که راحتتر بتونم  از کلاسای دیگه فراخوانی شون کنم

ممنون میشم جواب بدید .

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  10 سال پیش
+3 0

خوب این نشون دهنده این هست ، که موقع دیدن شی گرائی ، وسطای ویدئو حواست پرت شده و تو باغ نبودی !

استاتیک متد ها بدون ساختن یک نمونه از اون کلاس قابل استفاده هستند ، اما داینامیک یا غیر استاتیک ها  ، حتما نیاز به ساخت یک نمونه از اون کلاس رو دارن !

مثلا "  گنجایش بنزین پراید چقدر است ؟ "  جواب تو اون PDF است که دست کارخونست ! 

اما : " پراید شما چقدر بنزین داره ؟ " جواب مربوط به نمونه ی خاص پرایدی هست که دست شماست ! ، در واقع فقط وقتی یک نمونه داری می تونی اینو بفهمی و درک کنی 

پس کاربردش هم از این مثال میشه فهمید ، توابعی که کاری انجام میدن که نیاز به یک نمونه خاص از اون کلاس رو داره باید داینامیک و با استفاده از دستور 

 // ساخت یک نمونه از کلاس جی
G mynewg = new G();
// استفاده از نمونه ی خودمون ! Toast.makeText(mynewg.context, "text", Toast.LENGTH_SHORT).show();

در واقع هروقت new قبل اسم کلاس اومد داری یه نمونه ازش میسازی که بتونی به متد های داینامیکش دسترسی داشته باشی ، مثل آرایه که شما نمی تونی توی اون فایل PDF عنصر جدید اضافه کنی ، اما وقتی یه نمونه ازش بسازی ، دیگه مال خودته و پوله پراید رو دادی در واقع حالا شد نمونه خاص که دست شماست ! ، حالا هر کاری باهاش میخوای بکنی بکن !

این که معمولا Static هست ، خوب مشکلی نداره ، چون تا اینجا کلاس نویسی ما سطح بالایی نداره ، هرچند استاد تا سطح حرفه ای توضیح دادن ، ما فعلا کارمون با همون راه میفته پس چرا یک دستور جدید و یک فضای جدید در حافظه اشغال کنیم ؟ 

البته این برداشت من بود ، اساتید بیاین و اگه جایی اشتباه کردم تصحیحم کنید ، که دوستمونم گمراه نشه !

موفق باشید :)

0 0
ممنون ;) (10 سال پیش)
0 0
توضیحت خوب بود. مرسی (10 سال پیش)
0 0
ممنون، استفاده کردیم (6 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .