آشنایی با نحوه ی نامگذاری صحیح متغیرها در زبان جاوا در قالب پروژه ی ظرفیت مجاز آسانسور
مطلب جدیدی که در این آموزش قرار است فرا بگیریم نحوه صحیح نامگذاری متغیرها است. علاوه بر این، تک تک اجرای تشکیل دهنده یک برنامه را مورد بررسی قرار خواهیم داد و به منظور درک بهتر مطالب آموزشی، کلیه ی این موارد را در قالب یک پروژه انجام خواهیم داد. سناریویی که برای پروژه ی خود در نظر خواهیم گرفت عبارت است از:
فرض کنیم که در یک برج مسکونی زندگی می کنیم و علیرغم این که مدیر ساختمان از سکنه درخواست کرده است که بیش از ۱۰ نفر باهم سوار آسانسور نشوند باز هم مشاهده می کند که سکنه رعایت نمی کنند. با توجه به این که ایشان می دادند که ما یک برنامه نویس هستیم، از ما درخواست می کند که یک برنامه برای ظرفیت مجاز آسانسور بنویسیم. ما هم از درخواست ایشان استقبال کرده و اقدام به نوشتن برنامه می کنیم!
برای نوشتن چنین برنامه ای اول یک پروژه جدید در اکلیپس ایجاد می کنیم و نامی دلخواه برای آن همچون Elevator انتخاب می کنیم. در ادامه، یک کلاس تحت عنوان ElevatorCapacity به معنی ظرفیت آسانسور ایجاد کرده و به خاطر داشته باشیم که در حین ایجاد کلاس، گزینه public static void main را تیک بزنیم. حال می بایست کدی به شکل زیر داشته باشیم:
public class ElevatorCapacity {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
اگر بخواهیم می توانیم کامنت ها را حذف کنیم. در این برنامه ما یک متد از جنس main داریم که به منزله بخشی از برنامه ما است که برنامه از آن جا شروع می شود. اکنون به نظر می رسد که اگر بخواهیم که یک جمله روی صفحه مانیتور نمایش دهیم که عنوان برنامه ما را نمایش دهد با توجه به تمرین های پیشین هیچ مشکلی نداشته باشیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:
public class ElevatorCapacity {
public static void main(String[] args) {
// عنوان برنامه ظرفیت آسانسور
System.out.println("How many people should get on?");
}
}
حال به بررسی تک تک کلید واژه هایی از زبان برنامه نویسی جاوا می پردازیم که بعد از کامنت در کد آمده اند. در حقیقت واژه System یکی از کلاس ها یا آجرهای سازنده API در زبان برنامه نویسی جاوا است. System به بخش هایی از کامپیوتر ما دسترسی پیدا خواهد کرد که خارج از کنترل مستقیم ماشین مجازی جاوا یا JVM است (این توضیحات فقط جهت آگاهی بیشتر آمده است و از برنامه نویسان مبتدی درخواست می شد خیلی ذهن خود را درگیر مسائلی از این دست نکنند.) واژه out نشانگر جایی در برنامه اکلیپس است که متن را در آن به نمایش در می آورد. در واقع در محیط برنامه نویسی اکلیپس این مکان همان پنجره کنسول است که نمونه اجرا شده برنامه خود را می توانیم در آن مشاهده کنیم. متد println این دستور را به کامپیوتر می دهد که یک خط از کد را روی صفحه به نمایش در آورد.
پس از آشنایی با معنای تک تک کلید واژه های فوق، بایستی گفت هر آنچه که در داخل پرانتز در مقابل متد println قرار گیرد، در پنجره ی کنسول در حین اجرای برنامه چاپ خواهد شد. نکته ای که در اینجا می بایست مد نظر قرار دهیم این است که اگر بخواهیم یک جمله را در کنسول چاپ نماییم، در داخل پرانتز می بایست دو علامت ” ” قرار داده و متن خود را داخل آن تایپ کنیم اما در صورتی که بخواهیم فقط به طور مثال مقدار یک متغیر را روی صفحه به نمایش در آوریم می بایست صرفاً نام آن متغیر را درون پرانتز مقابل println بنویسیم که در این صورت هر آنچه مقداری که برای آن متغیر از پیش تعیین کرده باشیم روی صفحه نمایش داده خواهد شد.
پس از اجرای برنامه، جمله ی ?How many people should get on به معنای چند نفر می بایست سوار شوند؟ در کنسول اکلیپس چاپ شود. هم اکنون می بایست یک متغیر از جنس int برای ذخیره سازی وزن هر شخص که به طور متوسط ۷۵ کیلو است را تعریف نماییم. برای اینکار به صورت زیر عمل می کنیم:
int weightOfEachPerson = 75;
در واقع نام این متغیر را weightOfEachPerson به معنی وزن هر فرد می گذاریم و مقدار آن را ۷۵ کیلو در نظر می گیریم (توجه داشته باشیم که واحد کیلو فقط در ذهن ما است و هیچ جایی در int آن را تعریف نمی کنیم. از سوی دیگر فرض را در این برنامه بر آن می گذاریم که وزن افراد یک عدد صحیح خواهد بود. اگر بخواهیم چنین امکانی را فراهم کنیم که وزن افراد به صورت اعشاری وارد برنامه شود -مثلاً ۷۵٫۵- صرفاً نیاز است تا از متغیری از جنس double استفاده کنیم.)
نحوه نام گذاری این متغیر هم به این شکل است که اولین کلمه که weight است با یک حرف کوچک شروع شده و حرف اول کلمات بعدی با حرف بزرگ شروع شده اند(در حقیقت شما هر نامی به هر شکلی را می توانید برای خود در نظر بگیرید اما نکته این جا است که این نوع نامگذاری یک روش رایج مابین برنامه نویسان حرفه ای است و به امید خدا چنانچه روزی شما هم به یک برنامه نویس حرفه ای جاوا مبدل شدید و خواستید عضوی از یک تیم برنامه نویسی شوید، دیگر مشکلی در رابطه با نحوه نامگذاری نخواهید داشت.)
در مرحله بعد یک متغیر دیگر از جنس int برای ظرفیت آسانسور به شکل زیر تعریف می کنیم:
int elevatorCapacity = 750;
نام این متغیر را elevatorCapacity به معنی ظرفیت آسانسور با مقداری به میزان ۷۵۰ کیلو تعریف می کنیم. حال بایستی یک متغیر دیگر از جنس int ایجاد کنیم که در آن مقدار elevatorCapacity را بر مقدار weightOfEachPerson تقسیم کنیم. نام این متغیر آخر را numberOfPeople به معنی تعداد افراد می گذاریم و به صورت زیر آن را می نویسیم:
int numberOfPeople = elevatorCapacity / weightOfEachPerson;
در واقع در کد بالا میزان مقدار این متغیر را حاصل تقسیم ظرفیت آسانسور بر وزن هر شخص تعیین می کنیم. در مرحله آخر از نوشتن برنامه خود می بایست یک متغیر از جنس boolean تعریف کنیم که از طریق آن اجازه بسته شدن درب آسانسور را صادر خواهیم کرد. نام این متغیر را doorClosingOrder یا فرمان بسته شدن در می گذاریم و به شکل زیر آن را می نویسیم:
boolean doorClosingOrder = numberOfPeople > 10;
به طور خلاصه ما به این متغیر دستور می دهیم که اگر مقدار numberOfPeople که حاصل تقسیم مقادیر elevatorCapacity بر weightOfEachPerson می باشد بیش از ۱۰ شود بایستی مقدار boolean که دو حالت بیشتر ندارد true شود یعنی تعداد افراد سوار شده در آسانسور بیش از ۱۰ نفر است و در غیر این صورت مقدار false در نظر گرفته شود به این معنی که تعداد افراد سوار شده در آسانسور کمتر از ۱۰ نفر است. حال کد خود را به شکل زیر تکمیل می کنیم:
public class ElevatorCapacity {
public static void main(String[] args) {
// عنوان برنامه ظرفیت آسانسور
System.out.println("How many people should get on?");
//وزن هر شخص
int weightOfEachPerson = 75;
//ظرفیت آسانسور
int elevatorCapacity = 750;
//تقسیم کردن ظرفیت آسانسور بر وزن هر شخص و اختصاص آن به یک متغییر
int numberOfPeople = elevatorCapacity / weightOfEachPerson;
//تعیین اینکه آیا ظرفیت بیش از ۱۰ نفر است یا خیر؟
boolean doorClosingOrder = numberOfPeople > 10;
//نمایش جمله ای به معنای اینکه آیا تعداد افراد بیش از ده نفر است؟
System.out.println("Is the number of people more than 10?");
//نمایش نتیجه متغییر بولین
System.out.println(doorClosingOrder);
}
}
در نهایت جمله ی ?Is the number of people more than 10 را از طریق دستور ;()System.out.println در کنسول نمایش می دهیم و پس از آن نتیجه متغیر boolean را در خط آخر کد خود روی صفحه نمایش می دهیم. در این مرحله از کار، برنامه ی خود را اجرا کرده و خروجی برنامه را در کنسول مشاهده می کنیم. همان طور که در تصویر زیر مشاهده می شود، در بخش کنسول پس از اجرای برنامه کلمه ی false نمایش داده خواهد شد:
در واقع برای روشن تر شدن مطلب، کد خود را تفسیر می کنیم. در ابتدا وزن هر فرد را به طور متوسط ۷۵ کیلو در نظر می گیریم و ظرفیت آسانسور را ۷۵۰ کیلو. سپس ظرفیت آسانسور را بر ۷۵ تقسیم می کنیم که عدد ۱۰ به دست می آید. حال در boolean محاسبه می کنیم که اگر مقدار numberOfPeople بیش از ۱۰ باشد مقدار این متغیر true شود و اگر کمتر از ۱۰ باشد این مقدار false شود. سپس جمله ی ?Is the number of people more than 10 به معنی آیا تعداد افراد بیش از ۱۰ نفر است؟ را در کنسول نمایش می دهیم و بعد از آن نتیجه boolean خود را روی صفحه نمایش نشان می دهیم. در واقع با محاسباتی که انجام می دهیم در پاسخ به سوال فوق، برنامه نتیجه false به معنای نادرست یا خیر را به ما می دهد. از آنجا که پاسخ به سوال فوق خیر است، این اجازه به درب آسانسور داده می شود تا بسته شود.
هم اکنون می توانیم برنامه نهایی را در اختیار مدیر ساختمان قرار داده تا با همکاری شرکت آسانسور سازی، آسانسور برج مسکونی را به آن مجهز کند (البته کل این سناریو ساختگی بوده و صرفاً جهت درک بهتر مطالب آموزشی مورد استفاده قرار گرفت!)
در آموزش های آتی این امکان را خواهیم داشت تا بتوانیم بخشی از اطلاعات مثل تعداد افراد سوار شده را به صورت پویا و از طریق صفحه کلید وارد برنامه کنیم تا برنامه طراحی شده بر اساس اطلاعات ورودی نتیجه نهایی را به ما اعلام کند.
آخرین دیدگاهها