متغیرها در زبان جاوا

متغیرها در زبان های برنامه نویسی مخصوصا در بحث آموزش جاوا، از مهم ترین مفاهیم پایه ای هستند که درک صحیح آن ها نقش کلیدی در نوشتن کدهای مؤثر و قابل فهم دارد. در زبان جاوا نیز متغیرها و فیلدها اجزای اساسی ساختار برنامه محسوب می شوند که وظیفه ذخیره و مدیریت داده ها را بر عهده دارند. این مقاله با تمرکز بر مفهوم متغیرها در جاوا، به بررسی انواع مختلف آن ها از جمله متغیرهای نمونه، متغیرهای کلاس، متغیرهای محلی و پارامترها می پردازد. همچنین تفاوت های فنی و مفهومی بین «فیلد» و «متغیر» روشن می شود. در ادامه، با قوانین و عرف های رایج نام گذاری متغیرها نیز آشنا خواهید شد تا بتوانید کدی خوانا، منظم و حرفه ای بنویسید. این درس، گامی اساسی در درک بهتر ساختار برنامه ها در جاوا و پیش نیازی ضروری برای برنامه نویسی شیء گرا به شمار می رود.

متغیرها در زبان جاوا

یک شیء وضعیت خود را در فیلدها ذخیره می کند.

int cadence = 0;

int speed = 0;

int gear = 1;

بحث «شیء چیست؟» شما را با فیلدها آشنا کرد، اما احتمالاً هنوز چند سؤال در ذهن دارید، از جمله: قوانین و عرف های نام گذاری یک فیلد چیست؟ به جز int، چه انواع داده ی دیگری وجود دارد؟ آیا فیلدها هنگام اعلام باید مقداردهی اولیه شوند؟ اگر فیلدی به طور صریح مقداردهی اولیه نشود، آیا به آن یک مقدار پیش فرض اختصاص داده می شود؟ ما پاسخ این گونه پرسش ها را در این درس بررسی خواهیم کرد، اما پیش از آن باید با چند تمایز فنی آشنا شوید.

در زبان برنامه نویسی جاوا، از اصطلاحات «field» (فیلد) و «variable» (متغیر) استفاده می شود؛ این موضوع اغلب باعث سردرگمی توسعه دهندگان تازه کار می شود، چون هر دو اغلب به یک چیز اشاره دارند.

زبان برنامه نویسی جاوا انواع زیر از متغیرها را تعریف می کند:

متغیرهای نمونه (فیلدهای غیر استاتیک)

از نظر فنی، اشیاء وضعیت های فردی خود را در «فیلدهای غیر استاتیک» ذخیره می کنند، یعنی فیلدهایی که بدون کلمه کلیدی static اعلام می شوند. فیلدهای غیر استاتیک همچنین با نام متغیرهای نمونه شناخته می شوند، زیرا مقادیر آن ها برای هر نمونه از یک کلاس منحصربه فرد است (به عبارت دیگر، برای هر شیء)؛ سرعت جاری یک دوچرخه مستقل از سرعت جاری دوچرخه ای دیگر است.

متغیرهای کلاس (فیلدهای استاتیک)

متغیر کلاس، هر فیلدی است که با اصلاح کننده static اعلام شده باشد؛ این کار به کامپایلر می گوید که فقط یک نسخه از این متغیر وجود خواهد داشت، بدون توجه به اینکه کلاس چند بار نمونه سازی شود. یک فیلد که تعداد دنده های یک نوع خاص از دوچرخه را تعریف می کند، می تواند به صورت static علامت گذاری شود، زیرا از نظر مفهومی تعداد دنده ها برای همه نمونه ها یکسان است. کد static int numGears = 6; چنین فیلد استاتیکی ایجاد می کند. همچنین می توان کلمه کلیدی final را نیز اضافه کرد تا نشان دهد که تعداد دنده ها هرگز تغییر نخواهد کرد.

متغیرهای محلی

مشابه با اینکه یک شیء وضعیت خود را در فیلدها ذخیره می کند، یک متد اغلب وضعیت موقتی خود را در متغیرهای محلی ذخیره می کند. نحو اعلام یک متغیر محلی مشابه اعلام یک فیلد است (برای مثال، int count = 0;). هیچ کلمه کلیدی خاصی برای مشخص کردن یک متغیر به عنوان محلی وجود ندارد؛ این موضوع کاملاً به مکان اعلام متغیر بستگی دارد ،  که بین آکولادهای باز و بسته یک متد است. بنابراین، متغیرهای محلی فقط برای متدی که در آن اعلام شده اند قابل مشاهده هستند؛ آن ها از بقیه کلاس قابل دسترسی نیستند.

پارامترها

شما قبلاً نمونه هایی از پارامترها را دیده اید، هم در کلاس Bicycle و هم در متد main برنامه ی “Hello World!”. به یاد بیاورید که امضای متد main به صورت public static void main(String[] args) است. در اینجا، متغیر args پارامتر این متد است. نکته مهمی که باید به خاطر بسپارید این است که پارامترها همیشه به عنوان «متغیر» طبقه بندی می شوند نه «فیلد». این موضوع در مورد سایر ساختارهایی که پارامتر می پذیرند نیز صدق می کند (مانند سازنده ها و کنترل کننده های استثنا) که بعداً در این آموزش با آن ها آشنا خواهید شد.

با این گفته، ادامه ی این آموزش از دستورالعمل های عمومی زیر هنگام صحبت درباره ی فیلدها و متغیرها استفاده می کند. اگر صحبت درباره ی «فیلدها به طور کلی» باشد (به جز متغیرهای محلی و پارامترها)، ممکن است فقط از واژه ی «fields» استفاده شود. اگر بحث درباره ی «همه ی موارد بالا» باشد، ممکن است فقط از واژه ی «variables» استفاده شود. اگر متن نیاز به تمایز داشته باشد، از اصطلاحات خاص (مثل static field، local variables و غیره) به طور مناسب استفاده خواهد شد. همچنین ممکن است گاهی واژه ی «عضو» (member) را نیز ببینید. فیلدها، متدها و انواع تو در توی یک نوع، به طور جمعی اعضای آن نوع نامیده می شوند.

نام گذاری

هر زبان برنامه نویسی مجموعه ای از قوانین و عرف ها برای انواع نام هایی که می توان استفاده کرد دارد، و زبان جاوا نیز از این قاعده مستثنا نیست. قوانین و عرف های مربوط به نام گذاری متغیرها به صورت زیر خلاصه می شوند:

  • نام متغیرها به بزرگی و کوچکی حروف حساس است.
  • نام متغیر می تواند هر شناسه قانونی باشد ، یک توالی به طول نامحدود از حروف و ارقام یونیکد که با یک حرف، علامت دلار $ یا نویسه ی زیرخط _ آغاز می شود. با این حال، عرف بر این است که همیشه نام متغیرها با یک حرف آغاز شود، نه با $ یا _. همچنین، طبق عرف، از علامت $ اصلاً استفاده نمی شود. ممکن است در برخی موارد نام های تولیدشده به صورت خودکار دارای علامت $ باشند، اما شما باید از استفاده ی آن در نام متغیرهای تان خودداری کنید.
  • برای نویسه ی _ نیز عرف مشابهی وجود دارد؛ با اینکه از نظر فنی قانونی است که نام متغیر را با _ آغاز کنید، این کار توصیه نمی شود. فاصله ی سفید مجاز نیست.
  • نویسه های بعدی می توانند شامل حروف، ارقام، علامت دلار یا زیرخط باشند. در اینجا نیز عرف و عقل سلیم به کار می آید. هنگام انتخاب نام برای متغیرها، از کلمات کامل به جای مخفف های رمزگونه استفاده کنید. این کار باعث می شود کد شما خواناتر و قابل فهم تر باشد. در بسیاری از موارد، این کار باعث می شود کد شما خود-مستندساز باشد؛ فیلدهایی با نام های cadence، speed و gear بسیار شهودی تر از نسخه های مخفف مانند s، c و g هستند. همچنین به یاد داشته باشید که نام انتخاب شده نباید یک کلمه کلیدی یا رزرو شده باشد.
  • اگر نام انتخابی تان فقط شامل یک کلمه باشد، آن را با حروف کوچک بنویسید. اگر شامل چند کلمه است، حرف اول هر کلمه ی بعدی را بزرگ بنویسید. نام هایی مانند gearRatio و currentGear نمونه های عالی این عرف هستند.
  • اگر متغیر شما مقدار ثابتی ذخیره می کند، مانند static final int NUM_GEARS = 6، عرف کمی متفاوت است و هر حرف باید با حروف بزرگ نوشته شود و کلمات بعدی با کاراکتر زیرخط از هم جدا شوند. طبق عرف، نویسه ی زیرخط در جای دیگری استفاده نمی شود.

 

آیا شما به دنبال کسب اطلاعات بیشتر در مورد "متغیرها در زبان جاوا" هستید؟ با کلیک بر روی تکنولوژی, کسب و کار ایرانی، به دنبال مطالب مرتبط با این موضوع هستید؟ با کلیک بر روی دسته بندی های مرتبط، محتواهای دیگری را کشف کنید. همچنین، ممکن است در این دسته بندی، سریال ها، فیلم ها، کتاب ها و مقالات مفیدی نیز برای شما قرار داشته باشند. بنابراین، همین حالا برای کشف دنیای جذاب و گسترده ی محتواهای مرتبط با "متغیرها در زبان جاوا"، کلیک کنید.