آشنایی با نحوۀ نام‌گذاری صحیح متغیرها در زبان جاوا در قالب پروژۀ ظرفیت مجاز آسانسور


در این آموزش به تشریح نحوۀ صحیح نام‌گذاری متغیرها در قالب پروژه‌ای کاربردی خواهیم پرداخت که در آن قصد داریم تا بر اساس میانگین وزن چند نفر و همچنین ظرفیت یک آسانسور، بررسی کنیم ببینیم که آیا آسانسور مد نظر قابلیت حمل ایشان را دارد یا خیر.

حال برای پیاده‌سازی پروژۀ خود فرض می‌کنیم که در یک برج مسکونی زندگی می‌کنیم و در ادامه بر اساس میانگین وزن سکنه و همچنین تعداد افرادی که در هر بار سوار آسانسور می‌شوند، وزن کل افراد را محاسبه کرده و با ظرفیت مُجاز مقایسه می‌کنیم که برای آسانسور مورد نظر تعریف نموده‌ایم. 

برای پیاده‌سازی چنین برنامه‌ای، در ابتدا یک پروژۀ جدید در آی‌دی‌ای خود ایجاد کرده و نامی دلخواه همچون 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) {
        double weightOfEachPerson = 75.5;
        int numberOfPeople = 16;
    }
}

در کد فوق، با استفاده از دیتا تایپ double متغیری تحت عنوان weightOfEachPerson تعریف کرده و عدد اعشاری 75/5 را بدان اختصاص داده‌ایم که نوع دادۀ double را جهت فراهم کردن امکان ذخیره و نگهداری اعداد مربوط به وزن هر فرد در قالب یک عدد اعشاری تعریف کرده‌ایم. سپس با به‌کارگیری نوع دادۀ int متغیری دیگر به نام numberOfPeople تعریف کرده و عدد صحیح مربوط به تعداد افراد حاضر در آسانسور را در آن ذخیره نموده‌ایم (بدیهی است که تعداد افراد نمی‌تواند از نوع عدد اعشاری باشد.)

همان‌طور که می‌بینیم، نامی که برای هر یک از متغیرها انتخاب کرده‌ایم متشکل از چند واژه می‌باشد که در آن‌ها کلمۀ اول را با حروف کوچک نوشته و حروف اول از سایر کلمات را به صورت بزرگ نوشته‌ایم (توجه داشته باشیم که این شیوهٔ نام‌گذاری یک روش رایج در میان برنامه‌نویسان می‌باشد که منجر به سادگی در خواندن اسامی متغیرها و همچنین تسهیل درک سورس‌کد می‌گردد.) 

نکته
روش نام‌گذاری فوق‌الذکر اصطلاحاً camelCase نامیده می‌شود به طوری که در زبان انگلیسی واژۀ Camel به معنای «شتر» بوده و نام‌گذاری متغیرها با این سبک نیز بر اساس شمایی از «کوهان شتر» بدین نام شناخته شده است.

در این مرحله، نیاز است تا مجموع کل وزن افراد حاضر در آسانسور را محاسبه نماییم که برای این منظور میانگین وزن سکنه را در تعداد افراد حاضر در آسانسور ضرب می‌نماییم. بنابراین نیاز است تا متغیری به صورت زیر تعریف کرده و برنامۀ خود را تکمیل کنیم:

public class ElevatorCapacity {
    public static void main(String[] args) {
        double weightOfEachPerson = 75.5;
        int numberOfPeople = 16;
        double totalWeight = weightOfEachPerson * numbersOfPeople;
    }
}

همان‌طور که در کد فوق ملاحظه می‌شود، با استفاده از دیتا تایپ double متغیری تحت عنوان totalWeight تعریف کرده و حاصل‌ضرب هر یک از مقادیر منتسب به متغیرهای weightOfEachPerson در numberOfPeople را به متغیر مذکور اختصاص داده‌ایم (توجه داشته باشیم که تمامی اسامی متغیرها متناسب با ماهیت دیتای متناظرشان می‌باشند.) در ادامه، متغیر دیگری جهت نگهداری ظرفیت مجاز آسانسور مذکور به صورت زیر تعریف می‌کنیم:

double elevatorCapacity = 750;

در دستور فوق، جهت تعریف متغیر مربوط به ذخیرۀ ظرفیت مجاز آسانسور نیز نوع دادۀ double را به کار برده‌ایم تا به راحتی امکان تعریف عدد اعشاری را برای ظرفیت آسانسور مورد نظر داشته باشیم و همان‌طور که می‌بینیم، از سبک نام‌گذاری camelCase استفاده کرده و همچنین نامی متناسب با دیتای منتسب به آن را انتخاب نموده‌ایم. بنابراین دستور فوق را به برنامۀ خود اضافه کرده و در ادامه استرینگ مبنی بر تعداد افراد سوارشده به آسانسور در کنسول نمایش می‌دهیم که برای این منظور کدی مانند زیر خواهیم داشت:

public class ElevatorCapacity {
    public static void main(String[] args) {
        double weightOfEachPerson = 75.5;
        int numberOfPeople = 16;
        double totalWeight = weightOfEachPerson * numberOfPeople;
        double elevatorCapacity = 750;
        System.out.println(numberOfPeople + " people get on!");
    }
}

بنابراین متغیر numberOfPeople را به عنوان آرگومان ورودی به متد ()println داده‌ایم تا مقدار منتسب به آن را به همراه استرینگ «!people get on» در ابتدای اجرای برنامه و در کنسول چاپ کند.

همچنین توجه داشته باشیم که در دستور سطر هفتم از کد فوق، کیورد System به یکی از کلاس‌های از پیش تعریف‌شدۀ زبان جاوا اشاره دارد که امکان دسترسی به بخش‌هایی از سیستم را به برنامه می‌دهد که خارج از کنترل مستقیم JVM یا ماشین مجازی جاوا هستند و در ادامه کیورد out نشان‌دهندۀ خروجی مرتبط با آی‌دی‌ای مورد استفاده است بدین معنی که با استفاده از دستور System.out به محیط کنسول در نرم‌افزار مورد استفادۀ خود (در این آموزش اکلیپس) دسترسی داشته و با فراخوانی متد ()println دیتای مورد نظر را در کنسول چاپ می‌نماییم (جهت کسب اطلاعات بیشتر در رابطه با ماشین مجازی جاوا توصیه می‌کنیم به آموزش ماشین مجازی جاوا چیست؟ مراجعه نمایید.)

در این مرحله از آموزش می‌باید چک کنیم که آیا کل وزن افراد حاضر در آسانسور متناسب با ظرفیت مجاز آن می‌باشد یا خیر که در صورت تطابق با ظرفیت آسانسور مورد نظر، استرینگی مبنی بر قابلیت بسته شدن درب آن و در غیر این صورت عدم امکان بسته شدن درب را در کنسول چاپ کند که برای این منظور برنامۀ فوق را به صورت زیر تکمیل می‌نماییم:

public class ElevatorCapacity {
    public static void main(String[] args) {
        double weightOfEachPerson = 75.5;
        int numberOfPeople = 16;
        double totalWeight = weightOfEachPerson * numberOfPeople;
        double elevatorCapacity = 750;
        System.out.println(numberOfPeople + " people get on!");
        if (totalWeight <= elevatorCapacity) {
            System.out.println("The door can be closed!");
        } else {
            System.out.println("The number of people is more than the elevator capacity and the door can't be closed.");
        }
    }
}

همان‌طور که ملاحظه می‌شود، در برنامۀ فوق ابتدا استرینگ مربوط به نمایش تعداد افراد سوارشده بر آسانسور را در کنسول چاپ کرده و در ادامه دستور if اجرا می‌شود که در آموزش‌ آشنایی با دستور شرطی if در زبان برنامه‌نویسی جاوا به بررسی نحوۀ پیاده‌سازی دستورات شرطی پرداخته‌ایم اما در این مثال به طور خلاصه می‌توان گفت که با اجرای دستور سطر هشتم چک می‌کنیم ببینیم که اگر مقدار منتسب به متغیر totalWeight یا مجموع وزن افراد حاضر در آسانسور کوچک‌تر یا مساوی با مقدار منتسب به متغیر elevatorCapacity یا ظرفیت مجاز آسانسور باشد، شرط برقرار بوده و دستور داخل آن اجرا می‌شود بدین معنی که استرینگ «!The door can be closed» در کنسول چاپ می‌شود و در غیر این صورت نیز دستور داخل else اجرا شده و استرینگ مربوطه در کنسول نمایش داده می‌شود. در نهایت، با اجرای برنامۀ فوق در خروجی خواهیم داشت:

16 people get on!
The number of people is more than the elevator capacity and the door can't be closed.

در این پروژه، تعداد افراد حاضر در آسانسور معادل 16 نفر، میانگین وزن افراد 75/5 و ظرفیت مجاز آسانسور را برابر با 750 در نظر گرفته بودیم که با توجه به دیتای مد نظر می‌بینیم که مجموع وزن افراد خارج از ظرفیت آسانسور بوده و استرینگی مبنی بر عدم توانایی بسته شدن درب آن چاپ شده است.

زبان برنامه‌نویسی جاوا امکانی را برای دولوپرها فراهم می‌کند تا بتوانند به صورت دینامیک (پویا) بخشی از دیتای مورد نیاز را از کاربر دریافت کنند که در چنین شرایطی مثلاً می‌توان تعداد افراد را توسط کیبورد وارد کرده و بدین ترتیب پروژۀ فوق را به صورت کاربردی‌تر پیاده‌سازی نمود که در همین راستا، در آموزش آینده کلاسی تحت عنوان Scanner را به منظور دریافت ورودی از کاربر معرفی خواهیم کرد.


لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
javac.life.jav
javac.life.jav
۱۳۹۷/۰۲/۰۳
یک بنای معمولی با توجه به تصورات و تجربه های خود خانه می سازد ولی یک معمار طبق نقشه ساختمان جلو می رود و معمار حق ندارد از چهارچوب نقشه خارج شود.(مهندسی و گام به گام یاد بگیرید و بکار گیرید)
من برنامه نویسی میکرو کنترلر به زبان بیسیک رو مثل یک بنا یاد گرفتم و بعدها واقعا برام کسل کننده شد و الان دارم جاوا یاد میگیرم. تا زمانی که به اندازه کافی دید وسیع پیدا نکردید از چهارچوب آموزش خارج نشید و تمرین ها در حد آموزش انجام بدید و به وقتش پروبال بدید.
بازم از استاد عزیز تشکر میکنم بخاطر دید همه جانبه در آموزش
محمد
محمد
۱۳۹۶/۰۱/۲۱
با عرض سلام خدمت مدیر عزیز سکان آکادمی
واقعا از آموزش های خوب و عالیتون مچکرم دسته شما و همه دستند در کاران ممنون بی نظیرید سپاس
vahid
vahid
۱۳۹۵/۱۱/۲۹
سلام.متشکرم
بعضی از دوستان به مثال ایراد گرفته بودند .مثل اینکه توجه نداشتن که اینها مثال هستند و برای درک بهتره مطالبه .بجای تشکر ایراد نگیرید اونهم ایراد بنی ....
green
green
۱۳۹۵/۰۶/۱۰
باورم نمیشد برای جاوا جایی آموزشی باشه به این روانی و کارامدی از پایه
واقعا مرسی
دو روز دو فصل همگام با آموزش های بی نظیر سکان آکادمی
کاربر میهمان
Sadeghمن یک کاربر مهمان هستم
۱۳۹۵/۰۴/۳۱
سلام
ممنون از آموزش های خوبتون
ببخشید میشه برای این آموزش ها از اندروید استودیو به جای اکلیپس استفاده کرد؟
soroush
soroush
۱۳۹۵/۰۴/۱۱
سلام خیلی ممنونم بابت آموز هاش عالیتون!
Reza
Reza
۱۳۹۵/۰۴/۰۶
سلام
یک دنیا تشکر بابت آموزش فوق العادتون. ولی در مورد این جریان آسانسور باید عرض کنم که برنامه نوشته شده کلا اشتباه هست و هیچ نتیجه ای نداره. چون کارکرد آسانسور بر اساس وزن هست و نه تعداد، حال اگر ما وزن رو داشته باشیم که نداریم (وزن افراد حاضر در آسانسور رو نمیشه با کد نویسی بدست آورد بلکه باید از طریق ترازوی فیزیکی خود آسانسور به ما داده بشه) دیگه نیازی به پیدا کردن تعداد افراد حاضر در آسانسور نداریم و اجازه بسته شدن در رو تنها با مقایسه وزن مجاز آسانسور با وزن افراد حاضر در آسانسور صادر میکنیم. هر چند شاید هدف شما از ارائه این مطلب تنها آموزش کارکرد عملگرها باشه ولی به نظر من بهتره مثالها واقعی و کاربردی باشن. باز هم تشکر از زحمات شما
morteza
morteza
۱۳۹۵/۰۳/۱۱
اقا دمتون خیلی گرم...
فوق العاده اید
javad
javad
۱۳۹۵/۰۱/۲۵
واقعا خسته نباشید
کاربر میهمان
علیمن یک کاربر مهمان هستم
۱۳۹۴/۰۸/۲۹
با تشکر فراوان