در قسمت دوم از مجموعه آموزشهای قدم به قدم جاوا با متغیرها آشنا خواهیم شد. متغیرها یکی از ابتداییترین اجزای هر برنامه هستند و برنامه بدون متغیر معنی ندارد!
متغیر (Variable)
متغیر را میتوان به عنوان ظرفی فرضی در حافظه رم در نظر گرفت که میتواند مقداری داده را درون خود نگهداری کند. همانطور که هر ظرفی ظرفیت بخصوصی دارد هر متغیر هم مقدار معینی از دادهها را می تواند درون خود نگه دارد و همچنین مقداری که درون یک متغیر قرار میدهیم می تواند بارها و بارها در طول اجرای برنامه تغییر کند.
نوع داده (Data Type)
منظور از Data Type نوع دادهای است که قرار است درون یک متغیر قرار بگیرد. در جاوا باید هنگام تعریف یک متغیر نوع داده آن را مشخص کنیم.
نوع دادهها در جاوا به دو گروه اصلی تقسیم میشوند:
- نوع داده های اصلی (Primitive Data Types)
- نوع داده های ارجاعی (Reference Data Types)
البته گروه دوم اسمهای دیگری هم مانند شیگرا (Object Oriented) یا پیچیده (Complex) یا غیر اصلی (Non-Primitive) هم دارد.
ما فعلا با گروه اول سروکار داریم و به گروه دوم در فصلهای آینده خواهیم پرداخت.
نوع دادههای اصلی در جاوا را در جدول زیر مشاهده میکنید:
نکته: منظور از Signed Integer عدد صحیحی است که میتواند هم مثبت باشد و هم منفی.
توضیح ستونهای جدول
Type : نام نوع داده.
Contains: نوع دادهای که یک متغیر از نوع مورد نظر میتواند درون خود نگهداری کند.
Default: مقدار پیشفرض یک متغیر از نوع داده مورد نظر.
Size: مقدار حافظهای که یک متغیر از نوع مورد نظر اشغال میکند.
Range: محدودهای از مقادیری که یک متغیر از نوع داده مورد نظر میتواند درون خود نگهداری کند.
همانطور که متوجه شدید از این ۸ نوع داده ۶ نوع آن مخصوص نگهداری اعداد است.
حالا به توضیح این نوع داده ها می پردازیم:
boolean
یک متغیر از جنس boolean فقط میتواند مقدار true یا false را نگهداری کند. شاید در نگاه اول این نوع داده بیمصرف به نظر برسد اما در آینده میبینید که چقدر کاربردی است!
char
از این نوع داده برای نگهداری یک کاراکتر استفاده میشود. این نوع داده ۱۶ بیت از حافظه را اشغال میکند در صورتی که در بعضی از زبانها این رقم ۸ بیت است و دلیل آن این است که برای پشتیبانی از تمام کاراکترهای موجود در تمام زبان های دنیا به ۱۶ بیت از حافظه نیاز است.
byte , short , int , long
از این ۴ نوع داده برای نگهداری اعداد صحیح استفاده میشود. تفاوت آنها همانطور که در جدول میبینید در ظرفیت آنهاست.
float , double
برای تعریف متغیری که بتواند اعداد اعشاری را در خود ذخیره کند از یکی از این دو نوع داده استفاده می شود. البته نوع داده double نسبت به float رایجتر است و تفاوت آن با float این است که میتواند اعداد اعشاری با دقت بیشتری (رقمهای اعشار بیشتر) نگهداری کند.
روش تعریف یک متغیر
شکل کلی تعریف یک متغیر در جاوا به صورت زیر است:
نام متغیر نوع متغیر;
در قطعه کد زیر از هر نوع داده یک متغیر تعریف کردیم:
public class JavaLearning { public static void main(String[] args) { boolean myBool; char myChar; byte myByte; short myShort; int myInt; long myLong; float myFloat; double myDouble; } }
به نحوه نامگذاری متغیرها دقت کنید: حرف اول نام متغیر کوچک و حرف اول کلمه بعدی در نام متغیر، بزرگ است. به این شکل عبارات CamelCase گفته میشود. شما مجبور نیستید حتما به این صورت بنویسید، اما این یک قرارداد بین برنامهنویسان جاواست که شما هم به عنوان یک برنامهنویس جاوا باید آن را رعایت کنید. علاوه بر این، این روش نوشتن باعث خوانایی بیشتر عبارتی میشود که شامل چند کلمه است. کدام یک از موارد زیر به نظر شما خواناتر و زیباتر است؟
myintvariable
myIntVariable
اگر بخواهیم چند متغیر از یک نوع (مثلا int) تعریف کنیم می توانیم به شکل زیر عمل کنیم:
int myInt1, myInt2;
مقداردهی به متغیر
در کد قبل فقط متغیرها را ایجاد کردیم و مقداری به آنها ندادیم. حالا کد را تکمیل میکنیم و به هرکدام از متغیرها یک مقدار متناسب با نوع متغیر آن میدهیم:
public class JavaLearning { public static void main(String[] args) { boolean myBool = true; char myChar = 'm'; byte myByte = 13, mySecondByte = 85; short myShort = 2016; int myInt = 123456789; long myLong = 154356236234235l; float myFloat = 13.4f; double myDouble = 12345.6789d; } }
نکاتی که باید مورد توجه قرار گیرند:
۱- همانطور که در کد مشخص است برای اینکه به یک متغیر از نوع char مقدار بدهیم باید کاراکتر مورد نظر خود را بین دو ( ‘ ) قرار دهیم. (به این علامت Single Quotation گفته میشود) البته میتوان کد اسکی یک کاراکتر را نیز در یک متغیر از جنس char قرار داد. (اطلاعات بیشتر: http://ascii.cl)
۲- در جاوا به مقادیر ثابت لیترال (Literal) میگویند. (مثل عدد ۱۰۰ یا کاراکتر a)
به سه متغیر آخر دقت کنید: در انتهای مقداری که به متغیر myLong دادیم یک حرف L اضافه کردیم این یعنی این لیترال از جنس long است. اگر حرف L را در انتهای این لیترال نگذاریم کامپایلر جاوا به طور پیشفرض عدد را از جنس int در نظر میگیرد و چون این عدد از محدوده int بزرگتر است باعث بروز خطا در برنامه میشود. همچنین لیترالهای float با حرف f و لیترالهای double با حرف d در انتهای خود مشخص میشوند.
۳- در این کد ما در همان لحظه تعریف متغیر به آن مقدار دادیم اما همیشه این کار امکان پذیر نیست. اکثر اوقات باید متغیر را در یک مکان از کد تعریف کرده و در جایی دیگر از کد به آن مقدار بدهیم. مثال:
int myInt; myInt = 13;
قوانین نامگذاری متغیرها
ما میتوانیم نام دلخواه خود را برای متغیرهایی که تعریف میکنیم انتخاب کنیم، اما در نامگذاری متغیرها چند قانون وجود دارد که باید آنها را رعایت کنیم:
۱- نام متغیر تنها میتواند با یکی از حروف الفبای انگلیسی یا یکی از کاراکترهای $ و _ شروع شود. (البته توصیه میشود که نام متغیر همیشه با حروف الفبا شروع شود و از $ یا _ استفاده نشود.)
۲- بعد از اولین کاراکتر، نام متغیر میتواند شامل اعداد ۰ تا ۹ هم باشد اما فضای خالی (Space) در نام متغیر مجاز نیست. همچنین از کاراکترهای خاص مثل * یا # و … نمیتوان استفاده کرد.
۳- جاوا به حروف بزرگ و کوچک حساس است. یعنی متغیری با نام MyVar با متغیری با نام myVar یکی نیست.
[…] آموزش قدم به قدم جاوا – قسمت دوم […]
مرسی از اموزش
نحوه بیان و توضیح عالیه
میشه بگید دوره جاوا تقریبا چند قسمت است؟
و آیا تصمیمی برای آموزش برنامه نویسی اندروید هم دارید؟
خوشحالم که مورد توجهتون قرار گرفته و نظر دادید
حقیقتش دقیق معلوم نیست چند قسمت میشه ولی فکر کنم حدود ۳۰ قسمت بشه اگر بخوام بعضی از سرفصل هایی که حجم مطلبشون زیاده رو به چند قسمت تقسیم کنم
در مورد اندروید هم بله تصمیم دارم بعد از این دوره انشالله اندروید رو شروع کنم
موفق باشید
پس بی صبرانه منتظریم
سی قسمت ۰_۰
خدایا از این حواصل به ما هم عطا بفرما
پ.ن : حواصل> جمع حوصله
:)))
خیلی عالیه
ما ایرانی ها عادت داریم به جلو جلو دویدن
با صبر و حوصله به طور کامل پیش برین و فکر نکنین چون پیش پا افتاده اس گفتنش نیاز نیست.
ممنون
خیلی ممنون
نظرات شما عزیزان باعث دلگرمی من میشه
موفق باشید
با تشکر از دوست عزیز که زحمت این دوره ی اموزشی رو به عهده گرفتن
با تایید موارد عنوان شده می خوام در مورد موضوعی با عنوان “عادت خوب برنامه نویسی” مطلبی رو بگم
موارد مثل نامگذاری های مناسب و اصولی متغییر ها ,کلاسها, ابجکت ها , متد ها و همچنین در اندروید ویو ها در xml و… از همان اغاز برای برنامه نویسان باید تمرین بشه تا به صورت عادت در بیاد. این موارد در پروژه های سنگین کاری بسیار مفید هست
موارد دیگه ایی مثل این که عادت بکنیم هیچ متدی رو به اصطلاح رو هوا ننویسیم 🙂 حتما تعریفی از اون به عنوان یک متد از کلاس ارایه بدیم تا بتونیم استفاده مجدد یا بهینه سازی برامون ساده تر باشه.
با رعایت این موارد سرعت دقت و کارمدی کد شما بیشتر شده و وقت برای یادگیری ایده ها و تکنیک های جدید خواهید داشت این موارد را تحت عنوان programming habit برای هر کدام از زبان های برنامه نویسی می توان جستجو و مطالعه کرد
با تشکر
قاسمی
با تشکر از شما بخاطر نکته خوبتون
همونطور که گفتید رعایت این عادت ها یا قراردادهایی که بین برنامه نویسان وجود داره بسیار مهمه. سعی بنده هم بر همین بوده که در هر موضوع این قراردادها رو بیان کنم مثل همین CamelCase . در مباحث شی گرایی این قراردادها بسیار مهم هستند که انشالله به موقع به آن ها خواهم پرداخت
موفق باشید
زبان جاوا زبانی است که تقریبا در هر برنامه ای استفاده میشه ولی ما که اهل وب هستیم php رو ترجیح میدیم!!
موفق باشید 🙂
نام متغیر نوع متغیر درسته یا نوع متغیر بعد نام متغیر ؟
int y = 100; => 1. Data Type 2.Var Name 3. Assignment Value 4. Var Value
اول نوع متغیر رو می نویسید بعد نامش و بعد اگر خواستید بهش مقدار میدید
مثال:
int number = 13;
یا اگه نخواستید مقدار بدید:
int x;
موفق باشید
سلام لطفا مطالبی که خیلی ناب و پرکارآمد رو بیشـؤ بهشون بپردازید؟ درضمن آموزش خیلی عالیه