آموزش برنامه نویسی جاوا قسمت هفتم
در جلسات قبلی با مقدمات زبان جاوا آشنا شدیم. ابزارهای لازم را روی سیستم نصب کردیم و سادهترین برنامهی جاوای خود را با نام Hello World، هم به صورت دستی (یعنی با استفاده از اپلیکیشن نُت پد) و هم با استفاده از IDE اکلیپس نوشتیم. از این آموزش تا چند آموزش بعدی، قصد داریم مفاهیم پایه در برنامه نویسی جاوا را آموزش دهیم. بنابراین آموزشها کمی حجیمتر و سختتر میشوند.
قبل از شروع آموزش ابتدا نحوهی بزرگ کردن فونت در اکلیپس را به شما آموزش میدهم تا هم تصویر کدهایی که در این آموزشها قرار میدهیم خواناتر باشد و هم شما هنگام برنامه نویسی دچاره ضعیفی چشم نشوید.
ابتدا برنامهی اکلیپس را اجرا کنید و بعد از منوی Window گزینهی Preferences را انتخاب کنید. وارده پنجرهی زیر میشوید:
همانطور که در تصویر بالا مشاهده میکنید وارد پنجرهی Preferences شدهاید. روی اولین گزینه که General است کلیک کنید و به ترتیبی که در عکس زیر مشاهده میکنید، گزینههای مشخص شده را انتخاب کنید:
به ترتیب شمارههایی که در تصویر بالا مشخص شده است پیش بروید. در قسمت چهار (۴) وقتی روی گزینهی Basic کلیک میکنید، زیر مجموعههای آن نمایش داده میشود. شما کمی به پایین اسکرول کنید و آخرین گزینه یعنی Text Font را انتخاب کنید. همانطور که در تصویر زیر مشاهده میکنید، بعد از انتخاب کردن Text Font روی دکمهی …Edit کلیک کنید. پنجرهی Font باز میشود:
همانطور که در تصویر مشخص شده از پنجرهی Font، سایز مورد نظر خود را انتخاب کنید. من سایز ۱۲ را به شما پیشنهاد میکنم. بعد از انتخاب، تمام پنجرههای باز را OK کنید تا بسته شوند.
حالا در اکلیپس یک پروژهی جاوایی بسازید. سپس یک کلاس جاوا با نام MainClass ایجاد کنید. توجه داشته باشید که در هنگام ساختن کلاس، روی دکمهی:
public static void main(String[] args)
کلیک نکنید. کلاس ساخته شدهی شما باید به شکل زیر باشد:
همانطور که در تصویر بالا با یک فلش قرمز رنگ مشخص شده است، نام کلاس که MainClass است در بالای هر کلاس نمایش داده میشود.
هر برنامهی جاوا حداقل از یک کلاس و یک متد (که نام متد main است) تشکیل شده است که البته در این کلاس متد main پیادهسازی نشده است. از آنجا که متد main حتما باید در یک کلاس جاوا پیادهسازی شود، بنابراین ما نام کلاسی را که این متد را پیادهسازی میکند، کلاس اصلی یا MainClass مینامیم. توجه داشته باشید که ما هر نامی را میتوانیم برای کلاسمان انتخاب کنیم. اما باید نامی را انتخاب کنیم که متناسب با کاری که آن کلاس انجام میدهد باشد.
اولین کلمه در کلاس بالا public است که ما با این کلمهی کلیدی در فصل شیگرایی آشنا میشویم. بنابراین میتوانیم یا آن را پاک کنیم یا اینکه فعلا کاری با این کلمهی کلیدی نداشته باشیم و اجازه دهیم که همانجا باشد. بد نیست بدانید که در IDE اکلیپس کلمات کلیدی با رنگ بنفش مشخص میشوند. بنابراین نیازی به حفظ کردن کلمات کلیدی نیست.
برای ساختن هر کلاس در جاوا باید از کلمهی کلیدی class استفاده کرد. (تمام کلمات کلیدی در جاوا با حروف کوچک انگلیسی هستند). بعد از نوشتن کلمهی class باید نامی را برای کلاس خود انتخاب کنیم که در این آموزش نام MainClass انتخاب شده است. بعد از انتخاب نام کلاس، باید یک بلاک برای کلاسمان مشخص کنیم که این کار را با علامتهای باز و بستهی آکولاد انجام میدهیم.
همانطور که مشاهده کردید اکلیپس به صورت خودکار تمام این کارها را انجام داده است و نیازی نیست که ما آنها را انجام دهیم. اما باید بفهمیم که هر کد به چه معنی است. در ادامه میخواهیم متد main را به برنامه اضافه کنیم. در مورد متدها چند نکته وجود دارد که باید بدانید:
ابتدا اینکه متدها دو نوع هستند. یا مقداره برگشتی ندارند (یعنی از نوع void هستند) یا مقداره برگشتی دارند. (نگران نفهمیدن مقادیر برگشتی و غیر برگشتی در متدها نباشید. در ادامهی آموزشها با این نوع متدها آشنا میشوید). متد main از نوع void است.
در مورد انتخاب نام برای متدها، باید از قوانین نام گذاری در جاوا پیروی کنیم. در آموزش قبلی برای نام گذاری کلاسها تمام قوانین نام گذاری گفته شد و در این آموزش فقط نکاتی را که برای نام گذاری متدها باید رعایت کنیم، میگوییم.
نام تمام متدها با حرف کوچک انگلیسی شروع میشود. اگر به متد main هم توجه کنید با حرف کوچک انگلیسی نوشته شده است. اگر هم نام متد چند بخشی بود، به جز اولین حرف بخش اول نام متد که باید با حرف کوچک باشد، حرفهای اول بخشهای دیگر متد با حرف بزرگ نوشته میشوند. (کمی پیچیده شد!؟). به مثال زیر توجه کنید:
نام یک بخشی یک متد: print: همانطور که مشاهده میکنید نام متد با حرف کوچک انگلیسی شروع شده است.
نام دو بخشی یک متد: printSomething: همانطور که مشاهده میکنید نام بخش دوم متد که Something است با حرف بزرگ انگلیسی شروع شده است.
این شکل نام گذاری متد، در نام گذاری کلاسها هم رعایت میشود. فقط تفاوتی که با آن دارد نام تمام کلاسها با حرف بزرگ شروع میشود.
نامی که برای تمام متدها انتخاب میکنیم باید نامی باشد متناسب با کاری که قرار است آن متد انجام دهد. مثلا فرض کنید میخواهیم متدی بنویسیم که آن متد دو عدد را با هم جمع کند. بنابراین sum نام مناسبی است.
حالا میخواهیم متد main را در کلاسمان پیادهسازی کنیم. برای این کار سه راه وجود دارد. اولین راه این است که هنگام ساختن کلاس، تیک گزینهی:
public static void main(String[] args)
را فعال کنیم. راه دیگر نوشتن متد به صورت دستی است و راه دیگر آن نوشتن کلمهی main در بدنهی کلاس و بعد از آن گرفتن دکمههای ترکیبی:
CTRL + SPACE که توسط اکلیپس متد main نوشته میشود. تصویر زیر:
همانطور که در تصویر بالا مشاهده میکنید با گرفتن دکمههای ترکیبی CTRL + SPACE اکلیپس پیشنهاداتی را به ما میدهد که ما اولین گزینه را انتخاب میکنیم. بعد از انتخاب اولین گزینه کلاس ما به صورت زیر میشود:
همانطور که مشاهده میکنید کلاس ما کامل شد.
حالا میخواهیم متدی را بسازیم که وقتی که آن را فراخوانی میکنیم متنی در خروجی استاندارد نمایش داده شود.
برای اینکه متدی را بسازیم ابتدا باید نوع برگشتی یا غیر برگشتی آن متد را مشخص کنیم. (البته باید سطح دسترسی اون متد را هم مشخص کنیم که در این آموزش این کار را انجام نمیدهیم). متد مد نظر ما از نوع void است.
بعد نام متد را مشخص میکنیم. نامی که در نظر میگیریم printSomething است. فقط ما در این متد از کلمهی کلیدی static هم استفاده میکنیم. در آموزشهای بعدی کاربرد این کلمهی کلیدی توضیح داده خواهد شد.
توجه داشته باشید که این متد را خارج از بدنهی متد اصلی (main) و داخل بدنهی کلاس بنویسید. به شکل زیر:
متد ما همانطور که گفته شد، نوشته شد. (تصویر بالا):
حالا میخواهیم هر موقع که این متد را فراخوانی یا Call میکنیم، متنی را در خروجی استاندارد یا همان کنسول چاپ کند.
در فصل سیستم فایل با معنی و مفهوم استریم (Stream) آشنا خواهید شد. اما این را بدانید که در جاوا و در کلاس java.lang.System دو نوع استریم برای ورودی و خروجی استاندارد تعریف شده است. یکی System.out و دیگری System.in که همانطور که از نامهایشان معلوم است به ترتیب برای ارسال دادهها به خروجی استاندارد و دریافت داده از وردی استاندارد است. در این آموزش میخواهیم دادهای را به خروجی استاندارد ارسال کنیم. بنابراین باید از استریم System.out استفاده کنیم. دو متد ()print و ()println برای چاپ داده استفاده میشوند. فرق این دو متد در آموزشهای قبل گفته شده است. ما از متد ()println استفاده میکنیم. به تصویر زیر توجه کنید:
همانطور که مشاهده میکنید کد گفته شده را در بلاک (بلوک) یا بدنهی متد ()printSomething نوشتهایم. حالا میخواهیم این متد را اجرا کنیم. همانطور که در آموزشهای قبلی گفته شد، متد main نقطهی شروع هر برنامهی جاوا است. در کد بالا بدنهی متد اصلی (main) خالی است و اگر برنامه را اجرا کنیم، برنامه هیچ خروجی ندارد. بنابراین ما باید داخل متد main، متد ()printSomething را فراخوانی کنیم. منظور از فراخوانی یا Call کردن متد، استفاده از متد است. پس برای استفاده از متد ()printSomething باید نام این متد را داخل متد main بنویسیم. به صورت زیر:
سپس باید برنامه را ذخیره یا Save کنیم. برای اینکار دکمههای ترکیبی CTRL + S را همزمان نگه دارید. سپس برای اجرای برنامه مجددا دکمههای ترکیبی CTRL + F11 را نگه دارید تا برنامه اجرا شود. حالا باز هم با اجرای برنامه چیزی در خروجی استاندارد نمایش داده نمیشود. زیرا ما در متد ()println هیچ متنی را ننوشتهایم. برای این کار ابتدا یک جفت دابل کوتیشن در متد ()println قرار دهید و بعد هر متنی را که میخواهید بنویسید. مثلا من متن: Welcome to ZoomIT را مینویسم. تصویر زیر:
حالا دوباره برنامه را Save و اجرا کنید. نتیجهی اجرای برنامه:
قسمتی که با یک فلش قرمز رنگ مشخص شده است، خروجی برنامه در کنسول است.
تمرین: در مورد CamelCase تحقیق کنید. این موضوع برای درک بهتر نامگذاری کلاسها، متغیرها و متدها در جاوا است.
منبع: www.zoomit.ir