در این آموزش با متغیرها ، نحوه تعریف آن ها و انواع مختلف داده های پشتیبانی شده توسط جاوا، آشنا می شوید.
متغیرهای جاوا
متغیر مکانی برای ذخیره داده ها در حافظه (محل ذخیره سازی) است. برای نشان دادن محل ذخیره سازی ، به هر متغیر باید یک نام (شناسه) یکتا داده شود.
چگونه متغیرها را در جاوا تعریف کنیم؟
در اینجا مثالی برای تعریف متغیر در جاوا آورده شده است.
int speedLimit = 80;
در اینجا ، speedLimit یک متغیر از نوع داده int (عدد صحیح) است و مقدار ۸۰ نیز به آن اختصاص داده شده است.
در این مثال، هنگام تعریف متغیر به آن مقدار اختصاص دادیم اما این کار اجباری نیست. می توانید متغیرها را بدون تعیین مقدار تعریف و بعدا مقدار دهی کنید. مثلا،
int speedLimit;
speedLimit = 80;
می توان مقدار متغیر را در برنامه تغییر داد ، به همین خاطر به آن “متغیر” می گویند. مثلا،
int speedLimit = 80;
… .. …
speedLimit = 90;
جاوا یک زبان با نوع استاتیک است. یعنی همه متغیرها قبل از استفاده باید تعریف شوند.
همچنین، نمی توان نوع داده ای متغیر را در برنامه تغییر داد. برای مثال شما قادر به انجام کار زیر نیستید:
int speedLimit = 80;
… .. …
float speedLimit;
قوانین نامگذاری متغیرها در جاوا
زبان برنامه نویسی جاوا مجموعه ای از قوانین و قراردادهای خاص برای نامگذاری متغیرها دارد. آنچه باید بدانید در اینجا آمده است:
- متغیرها در جاوا حساس به حروف کوچک و بزرگ هستند.
- نام متغیر دنباله ای از حروف و ارقام یونیکد است و می تواند با حرف ، $ یا _ شروع شود. با این حال ، آغاز اسم متغیر با حرف معمولی تر است. همچنین ، نام متغیر نمی تواند شامل فضای خالی باشد.
هنگام تعریف متغیرها ، اسمی را انتخاب کنید که معقول باشد. به عنوان مثال ، score ، number ، level از اسامیs ، n و l با مفهوم تر هستند.
اگر یک کلمه را برای نام متغیر انتخاب کردید ، همه حروف را کوچک بنویسید. به عنوان مثال ، بهتر است از speed استفاده کنید نه SPEED ، یا sPEED.
اگر نام متغیر با بیش از یک کلمه را انتخاب کردید، از تمام حروف کوچک برای کلمه اول استفاده کنید و حروف اول هر کلمه بعدی را بزرگ بنویسید. به عنوان مثال ، speedLimit.
در زبان برنامه نویسی جاوا ۴ نوع متغیر وجود دارد:
- متغیرهای نمونه (متغیر های غیر استاتیک)
- متغیرهای کلاس (متغیر های استاتیک)
- متغیرهای محلی
- مولفه ای
انواع داده های اصلی Java
همانطور که در بالا گفته شد ، جاوا یک زبان با نوع استاتیک است. یعنی همه متغیرها قبل از استفاده باید تعریف شوند.
int speed;
در اینجا speed یک متغیر است و نوع داده متغیر int است. نوع داده int تعیین می کند متغیر فقط می تواند شامل اعداد صحیح باشد.
به عبارت ساده ، نوع داده متغیر مقادیری را که یک متغیر می تواند ذخیره کند تعیین می کند. ۸ نوع داده از پیش تعریف شده در زبان برنامه نویسی جاوا وجود دارد که به عنوان انواع داده های اصلی شناخته می شوند.
علاوه بر انواع داده های اصلی ، انواع داده های ارجاعی نیز در جاوا وجود دارد که بعدا با آن ها آشنا خواهید شد.
۸ نوع داده اصلی
boolean
- نوع داده boolean دارای دو مقدار ممکن است ، true یا false است.
- مقدار پیش فرض: false.
- معمولا برای شرایط صحیح / غلط استفاده می شوند.
- مثال:
class BooleanExample {
public static void main(String[] args) {
boolean flag = true;
System.out.println(flag);
}
}
خروجی
true
byte
- نوع داده بایت می تواند مقادیر بین -۱۲۸ تا ۱۲۷ داشته باشد.
- اگر به یقین مقدار متغیر در محدوده [-۱۲۸,۱۲۷] باشد ، به جای نوع داده ای int یا دیگر اعداد صحیح استفاده می شود.
- مقدار پیش فرض: ۰
- مثال:
class ByteExample {
public static void main(String[] args) {
byte range;
range = 124;
System.out.println(range);
// Error code below. Why?
// range = 200
}
}
خروجی
۱۲۴
short
- نوع داده کوتاه می تواند مقادیری از -۳۲۷۶۸ تا ۳۲۷۶۷ داشته باشد (عدد صحیح مکمل دو بیتی ۱۶ بیتی امضا شده است).
- اگر به یقین مقدار متغیر در محدوده [-۳۲۷۶۸, ۳۲۷۶۷] باشد ، به جای انواع دیگر داده های صحیح استفاده می شود.
- مقدار پیش فرض: ۰
- مثال:
class ShortExample {
public static void main(String[] args) {
short temperature;
temperature = -200;
System.out.println(temperature);
}
}
خروجی
-۲۰۰
int
- نوع داده int می تواند مقادیری از -۲۳۱ تا ۲۳۱-۱ داشته باشد.
- اگر از Java 8 به بعد استفاده می کنید ، می توانید از عدد صحیح ۳۲ بیتی بدون علامت با حداقل مقدار ۰ و حداکثر مقدار ۲۳۱-۱ استفاده کنید.
- مقدار پیش فرض: ۰
- مثال:
class IntExample {
public static void main(String[] args) {
int range = -4250000;
System.out.println(range);
}
}
خروجی
-۴۲۵۰۰۰۰
long
- نوع داده های long می تواند مقادیری از -۲۶۳ تا ۲۶۳-۱ داشته باشد.
- اگر از Java 8 یا بالاتر استفاده می کنید ، می توانید از عدد صحیح ۶۴ بیتی بدون علامت با حداقل مقدار ۰ و حداکثر مقدار ۲۶۴-۱ استفاده کنید.
- مقدار پیش فرض: ۰
- مثال:
class LongExample {
public static void main(String[] args) {
long range = -42332200000L;
System.out.println(range);
}
}
خروجی
-۴۲۳۳۲۲۰۰۰۰۰
توجه کنید ، استفاده از L در پایان -۴۲۳۳۲۲۰۰۰۰۰ نشان دهنده کلمه long است.
double
- نوع داده double دقت ۶۴ بیت دارد.
- هرگز نباید برای مقادیر دقیق مانند currency استفاده شود.
- مقدار پیش فرض: ۰٫۰(۰٫۰d)
- مثال:
class DoubleExample {
public static void main(String[] args) {
double number = -42.3;
System.out.println(number);
}
}
خروجی
-۴۲٫۳
float
- نوع داده float دقت ۳۲ بیت دارد.
- هرگز نباید برای مقادیر دقیق مانند currency استفاده شود.
- مقدار پیش فرض: ۰٫۰(۰٫۰f)
- مثال:
class FloatExample {
public static void main(String[] args) {
float number = -42.3f;
System.out.println(number);
}
}
خروجی
-۴۲٫۳
توجه داشته باشید که در برنامه بالا از -۴۲٫۳f به جای -۴۲٫۳ استفاده کردیم. چون -۴۲٫۳ از نوع double است. برای اینکه به کامپایلر بگویید -۴۲٫۳ از نوع float است و نه double، باید از f یا F استفاده کنید.
char
- کاراکتر یونیکد ۱۶ بیتی است.
- حداقل مقدار ‘\u0000’ و حداکثر مقدار ‘\uffff’ است.
- مقدار پیش فرض: ‘\u0000’
- مثال:
class CharExample {
public static void main(String[] args) {
char letter = ‘\u0051’;
System.out.println(letter);
}
}
خروجی
Q
مقدار یونیکد ‘/u0051’ برابر با Q است.
مثال دیگر:
class CharExample {
public static void main(String[] args) {
char letter1 = ‘9’;
System.out.println(letter1);
char letter2 = 65;
System.out.println(letter2);
}
}
خروجی
۹
A
هنگامی که letter1 را چاپ می کنید ، خروجی ۹ می شود زیرا به letter1 کاراکتر ۹ اختصاص داده شده است.
هنگامی که letter2 را چاپ می کنید ، خروجی A می شود زیرا مقدار اسکی حرف A، ۶۵ است.
جاوا همچنین از طریق کلاس java.lang.String پشتیبانی رشته های کاراکتر را فراهم می کند. در اینجا چگونگی ایجاد شی String در جاوا آورده شده است:
myString = “Programming is awesome”;
لیترال در جاوا
برای درک لیترال ، بیایید مثالی بزنیم که مقداری را به یک متغیر اختصاص دهیم.
boolean flag = false;
در اینجا،
- boolean – نوع داده است.
- flag – متغیر است
- false – لیترال است.
لیترال نمایانگر کد منبع با یک مقدار ثابت است.
مقادیری مانند ۱٫۵، ۴، true ، ‘\u0050’ که مستقیما در برنامه ظاهر می شوند بدون اینکه نیاز به محاسبه داشته باشند لیترال هستند.
در مثال بالا ، flag یک متغیر است. از آنجا که از نوع boolean است ، ممکن است false یا true باشد. کامپایلر برای درک آن نیاز به محاسبه دارد. با این حال ، لیترال مانند -۵ ، “a” ، true نشان دهنده مقدار ثابت است.
لیترال صحیح
- برای مقدار دهی اولیه متغیرهای انواع داده های int، byte ، short ، int و long از لیترال صحیح استفاده می شود.
- اگر لیترال صحیح با l یا L تمام شود ، از نوع long است. نکته: بهتر است از L به جای l استفاده کنید.
// Error! literal 42332200000 of type int is out of range
long myVariable1 = 42332200000;
// ۴۲۳۳۲۲۰۰۰۰۰L is of type long, and it’s not out of range
long myVariable2 = 42332200000L;
- لیترال صحیح را می توان در سیستم های دسیمال ، هگزا دسیمال و دودویی بیان کرد.
- اعدادی که با پیشوند ۰x شروع می شوند نشانگر هگزا دسیمال هستند. به همین ترتیب ، اعدادی که با پیشوند ۰b شروع می شوند ، دودویی را نشان می دهند.
// decimal
int decNumber = 34;
// ۰x represents hexadecimal
int hexNumber = 0x2F;
// ۰b represents binary
int binNumber = 0b10010;
لیترال ممیز شناور
- برای مقدار دهی اولیه ی متغیرهای از نوع float و double ، از لیترال ممیز شناور استفاده می شود.
- اگر یک لیترال ممیز شناور با f یا F به پایان برسد ، از نوع float است. در غیر این صورت ، از نوع double است. نوع double می تواند اختیاری با D یا d پایان یابد. با این حال ، لازم نیست.
- همچنین می توانند در اعداد نماد علمی با استفاده از E یا e بیان شوند.
class DoubleExample {
public static void main(String[] args) {
double myDouble = 3.4;
float myFloat = 3.4F;
// ۳٫۴۴۵*۱۰^۲
double myDoubleScientific = 3.445e2;
System.out.println(myDouble);
System.out.println(myFloat);
System.out.println(myDoubleScientific);
}
}
خروجی
- ۳٫۴
- ۳٫۴
- ۳۴۴٫۵
لیترال های کاراکتر و رشته
- حاوی کاراکترهای یونیکد (UTF-16) هستند.
- برای لیترال کاراکتر ، از نقل قول منفرد استفاده می شود. مثلا ‘a’ یا ‘\u0111’.
- برای لیترال رشته ای ، از نقل قول مضاعف استفاده می شود. به عنوان مثال ، “programming” ، ” java8″
- جاوا همچنین از چند دنباله فرار ویژه پشتیبانی می کند. به عنوان مثال ، \b برای backspace، \t برای انتقال مکان نما به ۸ مکان بعد ، \n برای انتقال مکان نما به خط بعد ، \f برای انتقال کنترل به صفحه ی جدی ، \r برای ابتدای سطر جاری، \” برای چاپ علامت نقل قول ، \’ برای چاپ نقل قول منفرد ، و \\ برای چاپ بک اسلش
class DoubleExample {
public static void main(String[] args) {
char myChar = ‘g’;
char newLine = ‘\n’;
String myString = “Java 8”;
System.out.println(myChar);
System.out.println(newLine);
System.out.println(myString);
}
}
خروجی
g
Java