در زبانهای برنامهنویسی مختلف متغیرها عناصری میباشند که با بهکارگیری آنها میتوان یکسری دیتای مورد استفاده در برنامه را ذخیرهسازی و نگهداری کرد به طوری که دادههای منتسب به آنها در برخی مواقع قابلیت تغییر داشته و توسط برنامهنویس یا کاربر تغییر داده میشوند که از همین روی نام «متغیر» برای این عناصر انتخاب شده است. به طور کلی، دیتای تخصیصیافته به هر یک از متغیرها در فضایی از حافظۀ سیستم به عنوان یک Value یا «مقدار» ذخیره شده و در صورت جایگزینی این مقدار با دیتایی جدید، دیتای پیشین به طور کامل از بین میرود.
به منظور استفاده از متغیرها در زبان برنامهنویسی جاوا همواره میباید نکاتی را مد نظر قرار دهیم بدین صورت که هر یک از متغیرها شامل نوع، نام و مقدار میباشند و تعریف متغیری که یکی از این سه مورد را نداشته باشد به منزلۀ ایجاد متغیری ناقص است (همانطور که پیشتر اشاره کردیم، نام هر متغیر واژهای از جنس Identifier میباشد.)
در این مرحله، جهت درک بهتر مفهوم متغیرها، با توجه به آنچه تاکنون آموختهایم، یک برنامۀ جدید جاوا در محیط آیدیای خود با نامی دلخواه مانند Variables ایجاد کرده سپس کلاسی داخل آن میسازیم و نام کلاس را به دلخواه Variable انتخاب مینماییم (توجه داشته باشیم که نام کلاس میباید با حرف اول بزرگ نوشته شود.) در ادامه، جهت وارد کردن اطلاعات مورد نیاز خود در برنامه میتوانیم از دیتا تایپهای مختلف استفاده کرده و یکسری متغیر مد نظر خود را تعریف کنیم که در ادامه به طور خلاصه برخی از آنها را مورد بررسی قرار میدهیم که عبارتند از:
- نوع دادۀ عدد صحیح: دیتا تایپ
int
به منظور تعریف متغیر جهت ذخیرۀ دیتایی از نوع اعداد صحیح مورد استفاده قرار میگیرد (برای نگهداری نوع دادۀ عدد صحیح دیتا تایپهای دیگری همچونbyte
وshort
یاlong
در زبان برنامهنویسی جاوا تعریف شدهاند.) - نوع دادۀ عدد اعشاری: دیتا تایپ
double
جهت ذخیرهسازی اطلاعاتی از جنس اعداد اعشاری به کار گرفته میشود (زبان جاوا علاوه بر دیتا تایپdouble
قابلیت تعریف متغیر جهت نگهداری اعداد اعشاری با بهکارگیری دیتا تایپ دیگری تحت عنوانfloat
را دارا است که تفاوت این دو دیتا تایپ در دقت بالای نوع دادۀdouble
میباشد.)
همچنین برای تعریف متغیرها و به منظور جلوگیری از حجیم شدن سورسکد میتوانیم آنها را با یکدیگر ادغام نماییم اما توجه داشته باشیم که در این صورت دادههای اختصاصیافته به تمامی متغیرها میباید دیتا تایپی یکسان داشته باشند. به طور مثال، نمیتوان متغیری با دیتایی از جنس int
را با یک متغیر دیگر ادغام کرد که دادهای از جنس double
را نگهداری میکند. برای روشنتر شدن این مسئله، در مثال زیر با استفاده از نوع دادۀ int
سه متغیر تعریف کرده و یکسری عدد صحیح را به هر یک اختصاص دادهایم که به صورت زیر میتوانیم آنها را ادغام نماییم:
int apple = 8, banana = 10, orange = 12;
در کد فوق، سه متغیر تحت عناوین banana
،apple
و orange
تعریف کرده و سه مقدار از نوع دادۀ عدد صحیح به ترتیب معادل اعداد 8، 10 و 12 را به آنها اختصاص دادهایم و در ادامه هر یک را با علامت ,
از یکدیگر جدا کرده و پس از آخرین متغیر نیز یک علامت ;
قرار دادهایم.
- نوع دادۀ کاراکتر: در برنامهنویسی گاهی نیاز داریم تا مقادیری از جنس حرف یا کاراکتر را در یک متغیر ذخیرهسازیم که برای این منظور میتوانیم از نوع دادۀ
char
استفاده کنیم؛ به عبارت دیگر، به منظور ذخیره کردن صرفاً یک کاراکتر یا برخی علائم خاص در حافظهٔ سیستم میتوانیم دیتای مد نظر خود را در قالب مقداری از نوعchar
به متغیری منتسب کنیم بدین صورت که حتماً میباید دیتای مذکور را داخل علائم' '
قرار دهیم.
نکته |
برای نوشتن کلمهای حاوی بیش از یک کاراکتر به هیچ وجه نمیتوان دیتا تایپ char را مورد استفاده قرار داد. |
- نوع دادۀ بولین: در فرآیند توسعۀ نرمافزار گاهی با شرایطی مواجه میشویم که نیاز است تا به منظور پیشبرد اهداف نرمافزار چک کنیم که «آیا کاربر پسورد خود را به طور صحیح وارد کرده است یا خیر؟» که پاسخ به پرسشهایی از این دست در قالب دو مقدار «آری» یا «خیر» میباشند و بدین ترتیب سایر دستورات برنامه نیز بر اساس دیتای مربوطه اجرا میشوند. در چنین شرایطی، به منظور نگهداری دیتایی در قالب مقادیر آری (درست) یا خیر (نادرست) نیاز به استفاده از دیتا تایپی تحت عنوان
boolean
داریم چرا که این نوع داده قابلیت ذخیرۀ اطلاعات مرتبط با درست یا اشتباه بودن یک رویداد را دارا است.
هشدار |
گرچه مقادیر نوع دادۀ بولین true یا false هستند، اما نمیتوان آنها را همچون دیتا تایپهای char و String داخل علامتهای ' ' و " " قرار داد چرا که استفاده از مقادیری به صورت 'true' منجر به بروز مشکل در حین کامپایل برنامه میشود. |
به طور کلی، در زبان برنامهنویسی جاوا، اصطلاحاً هشت Primitive Type به معنای «تایپ اولیه» داریم که عبارتند از:
- short
- int
- long
- float
- double
- char
- boolean
- byte
از میان این هشت دیتا تایپ انواع دادۀ double
و char
و همچنین سایر دیتا تایپهایی همچون boolean
و int
از اهمیت بیشتری برخوردارند.
روش نامگذاری صحیح متغیرها در زبان جاوا
نامگذاری صحیح کلاسها، متدها و متغیرها در این زبان یکی از مواردی است که رعایت آن اثربخشی فرآیند توسعۀ نرمافزار را افزایش داده و منجر به تولید سورسکدی تمیز، قابلفهم و با قابلیت نگهداری بالا میشود که در همین راستا در ادامه قصد داریم تا راهکارهایی جهت نامگذاری صحیح متغیرها و دیگر بخشهای برنامه ارائه دهیم.
به طور کلی، برای هر متغیر میباید نامی در نظر گرفته شود که با حرف کوچک شروع شده و همچنین متناسب با دیتایی باشد که قرار است تا در متغیر مذکور نگهداری شود. برای مثال، فرض کنیم که قصد داریم تا دیتایی همچون تعداد مسافرین یک هتل را در برنامۀ خود مورد استفاده قرار دهیم که در چنین شرایطی میتوانیم از دیتا تایپ int
استفاده کرده و مثلاً عدد 300 را به متغیری تحت عنوان people
منتسب کنیم که برای این منظور نیاز است تا دستوری به صورت زیر بنویسیم:
int people = 300;
در دستور فوق، با بهکارگیری دیتا تایپ int
متغیری تحت عنوان people
تعریف کرده و عدد 300 را با استفاده از عملگر =
بدان اختصاص داده و در انتهای دستور نیز یک علامت ;
قرار دادهايم که با اجرای چنین دستوری کامپایلر جاوا ایرادی برای نام متغیر نمیگیرد اما بر اساس آنچه که در بالا بدان اشاره کردیم، انتخاب این نام به منظور ذخیرۀ دیتا صحیح نمیباشد چرا که عنوان people
توصیفکنندۀ ماهیت متغیر نبوده و از همین روی انتخاب نامی همچون guestNumber
برای نگهداری دیتای مربوط به تعداد مسافرین هتل به مراتب بهتر است چرا که ماهیت آن با دیتای ذخیرهشده در برنامه همخوانی دارد.
همچنین استفاده از اسپیس یا سایر علائمی نظیر –
و .
و همچنین ,
در نامگذاری متغیرهایی با بیش از یک کلمه مجاز نمیباشد بلکه واژگان مورد استفاده در نام متغیر باید به یکدیگر بچسبند اما از سوی دیگر خواندن یکسری واژۀ به هم چسبیده کمی دشوارتر از حالت معمولی میباشد که برای رفع چنین مشکلاتی حروف اول واژگان دوم به بعد از اسامی متغیرها به صورت حروف بزرگ نوشته میشوند؛ به عبارت بهتر، واژۀ اول با حروف کوچک و سایر واژگان با حروف اول بزرگ نوشته میشوند که این سبک نامگذاری اصطلاحا camelCase نامیده شده و خواندن نام متغیرها را به مراتب آسانتر میسازد. برای روشن شدن این مسئله، در ادامه یکسری متغیر بر اساس قوانین فوق تعریف کردهایم:
public class Variable {
int appleNumber = 100;
double moneyAmount = 22.3;
char letterName = 'A';
boolean isMale = true;
}
همانطور که مشاهده میکنید، در ابتدا با استفاده از نوع دادۀ int
متغیری تحت عنوان appleNumber
تعریف کرده و عدد 100 را بدان اختصاص دادهایم و در سطر بعد با دیتا تایپ double
متغیری به نام moneyAmount
ایجاد کرده و در ادامه عدد اعشاری 22.3 را به متغیر مذکور منتسب کردهایم. به همین ترتیب، نوع دادۀ char
را به منظور تعریف متغیر دیگری به نام letterName
مورد استفاده قرار داده و کاراکتر «A» را داخل علائم ' '
به این متغیر منتسب نمودهایم و در نهایت هم به منظور نگهداری مقدار بولین true
دیتا تایپ boolean
را به کار گرفته و آن را به متغیری تحت عنوان isMale
اختصاص دادهایم.