{CodeGate}

متغیر static در جاوا (static variables)

در این جلسه تیم کدگیت را با آموزش متغیر static در جاوا همراهی کنید. پیش نیازهای این آموزش شامل موارد زیر است:

  1. آشنایی با متد
  2. آشنایی با شی گرایی
  3. آشنایی با constructor

Static در جاوا

کلمه کلیدی static در جاوا را ابتدای اولین برنامه ای که مینویسیم آن را میبینیم (منظور متد main است که static است) و شاید برای ما سوال شود این کلمه به چه معناست!! کلمه کلیدی static در جاوا اساسا برای مدیریت حافظه استفاده میشود. ما میتوانیم کلمه کلیدی Static را قبل از متغیرها، متدها و کلاسهای تو در تو قرار دهیم. نکته اساسی که در این کلمه کلیدی وجود دارد این است که static وابسته به کلاس است و نه شی!!! در این جلسه ما متغیر static در جاوا را توضیح میدهیم.

متغیر static در جاوا

وقتی ما قبل از یک متغیر یا فیلد در کلاس واژه static را به کار ببریم، متغیر static در جاوا میگوییم. دو نکته را به یاد داشته باشید:

  1. متغیر static برای ویژگیهای(فیلدهای) عمومی همه اشیا به کار میرود(چون وابسته به کلاس است).
  2. این نوع متغیر فقط یک بار فضای کلاس را میگیرد و تمامی اشیا به آن به آن اشاره دارند!!!

مثال اول

با یک مثال ساده مطالب بالا را شرح میدهیم. فرض کنید یک کلاس داریم برای دانشجویان. این کلاس شامل سه فیلد Student id و name و college است. کد کلاس به صورت زیر است:

حال فرض کنید ما 5000 دانشجو داریم. این دانشجویان وقتی در برنامه ساخته میشوند 5000 شی هستند که وارد حافظه ما میشوند. وقتی در یک دانشگاه باشیم شماره دانشجویی ها و نام ها با هم متفاوت است ولی نام دانشگاه برای همه یکسان است و اگر بخواهیم این کار را برای همه تکرار کنیم فقط حافظه اضافی گرفته میشود. بهترین راه حل استفاده از متغیر static در جاوا است. کد بالا را تغییر میدهیم و به صورت زیر مینویسیم:

در کد بالا متغیر college متغیری static است و برای تمام اشیا که ساخته میشود یکسان است و فقط یک مکان از حافظه را میگیرد و نه بیشتر!!!

متغیر static در جاوا

مثال دوم

مثال دوم متغیر static در جاوا مثالی ساده است اما کاربردی!!! فرض میکنیم ما کلاسی به نام Counter داریم که فیلدی به نام count در آن است برای شمارش. هدف ما این است که تعداد اشیا ساخته شده از این کلاس را شمارش کنیم. پس درون constructor آن متغیر را به یک جمع میکنیم. ابتدا کد بدون متغیر static را ببینید:

خروجی کد بالا به صورت زیر است:

همانطور که میبینید هر موقع شی ساخته میشود خروجی 1 نمایش داده میشود دلیل این است که متغیر count برای هر شی جدا و درون خودش است و در ابتدا نیز 0 است!!! حال کد Static شده را ببینید:

خروجی کد بالا:

همانطور که در خروجی میبینید هر موقع اشیا ساخته شده به شمارنده یکی اضافه میشود. و دیگر هر شی شمارنده خاص خود را ندارد و تمام اشیا یک شمارنده دارند!! این یکی از خواص متغیر Static در جاوا است!!

پسورد: www.codegate.ir

 

دسته : java, آموزش قدم به قدم جاوا, جاوا, شی گرایی در جاوا

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz