آموزش جامع برنامه نویسی جاوا به زبان ساده — بخش ششم: نخستین کلاس جاوا

۲۰۸ بازدید
آخرین به‌روزرسانی: ۶ شهریور ۱۴۰۲
زمان مطالعه: ۴ دقیقه
دانلود PDF مقاله
آموزش جامع برنامه نویسی جاوا به زبان ساده — بخش ششم: نخستین کلاس جاواآموزش جامع برنامه نویسی جاوا به زبان ساده — بخش ششم: نخستین کلاس جاوا

در بخش های قبلی از آموزش های جامع برنامه‌نویسی جاوا با مقدمات این زبان آشنا شدیم. برای مثال در بخش سوم مفاهیم برنامه‌نویسی شیء‌گرا را مرور کردیم و در بخش چهارم به مبانی زبان جاوا پرداختیم. اینک زمان آن رسیده است که هر آنچه را در بخش‌های قبلی آموخته‌ایم گرد هم بیاوریم و شروع به نوشتن کد بکنیم.

997696

نخستین کلاس جاوا

 در این بخش ابتدا اعلان یک کلاس را می‌نویسیم و متغیرها و متدها را با استفاده از پکیج اکسپلورر ایکلیپس به آن اضافه می‌کنیم. نحوه استفاده از کلاس Logger برای بررسی رفتار برنامه و همچنین نحوه استفاده از متد ()main به عنوان تست را یاد می‌گیریم.

ایجاد پکیج

در برنامه ایکلیپس از طریق مسیر Window > Perspective > Open Perspective وارد نمای پکیج اکسپلورر (در چشم‌انداز جاوا) بشوید. ما در حال ساخت نخستین کلاس جاوا هستیم. گام نخست ایجاد مکانی برای حیات کلاس است. پکیج‌ها سازنده‌های فضای نام هستند و به‌طور مستقیم نیز با ساختار پوشه سیستم ارتباط دارند. بجای استفاده از پکیج پیش‌فرض (که همواره ایده بدی محسوب می‌شود) یک پکیج اختصاصی برای کدی که می‌نویسید ایجاد کنید. بر روی File > New > Package کلیک کنید تا ویزارد پکیج جاوا مانند تصویر زیر آغاز شود:

عبارت را در فیلد نام تایپ کنید و بر روی Finish کلیک کنید. پکیج جدید ایجاد و در پکیج اکسپلورر مشاهده می‌شود.

اعلان کلاس

به روش‌های مختلفی می‌توان یک کلاس را در پکیج اکسپلورر ایجاد کرد اما آسان‌ترین راه راست کلیک بر روی پکیج ایجاد شده و انتخاب مسیر New > Class است. بدین ترتیب صفحه ایجاد کلاس جدید باز می‌شود.

در فیلد نام عبارت Person را تایپ کنید و بر روی Finish کلیک کنید.

کلاس جدید در پنجره ویرایش مشاهده می‌شود. توصیه می‌شود که چند نما (problems ،Javadoc و ...) را که به‌طور پیش‌فرض در چشم‌انداز جاری ایکلیپس باز می‌شوند ببندید تا مشاهده کد منبع آسان‌تر شود. در شکل زیر فضای کاری با نماهای ضروری که باز هستند دیده می‌شود.

ایکلیپس یک کلاس پوسته ایجاد می‌کند که نام پکیج در بالای آن دیده می‌شود. کافی است اینک مقادیر کلاس را وارد کنید. می‌توانید نحوه ایجاد کلاس را در ایکلیپس از طریق تنظیمات Window > Preferences > Java > Code Style > Code Templates پیکربندی کنید. برای سادگی کار با ایجاد کد پیش‌فرض ایکلیپس کار را ادامه می‌دهیم.

در شکل فوق به علامت ستاره (*) در کنار نام فایل کد منبع جدید توجه کنید. این علامت ستاره نشان می‌دهد که تغییری در کد ایجاد شده است و کد هنوز ذخیره نشده است. همچنین توجه کنید که اشتباهی در اعلان خصوصیت نام name رخ داده است و نوع آن Strin اعلان شده است. کامپایلر نمی‌تواند ارجاعی به این کلاس پیدا کند و آن را به عنوان خطای کامپایلر نشان می‌دهد (با استفاده از خط موج‌دار قرمزرنگ زیر عبارت Strin). البته می‌توان با اضافه کردن حرف g به انتهای عبارت این خطا را رفع نمود. این امر قدرت IDE در کشف خطا را نشان می‌دهد و بسیار بهتر از توسعه با خط فرمان (Command Prompt) است.

افزودن متغیرهای کلاس

در قطعه کد 3 در بخش قبلی آموزش، کلاس Person را نوشته‌ایم ولی توضیح چندانی ندادیم. اینک نشان می‌دهیم که متغیرهای کلاس چگونه اضافه می‌شوند.

به یاد داشته باشید که یک متغیر سطح دسترسی، نوع داده، نام متغیر و مقدار اولیه (اختیاری) دارد. قبلاً به‌طور مختصر نحوه تعریف سطح دسترسی، و نام متغیر را توضیح دادیم. اینک نوع داده‌هایی که متغیر می‌تواند داشته باشد را تعریف می‌کنیم.

نوع داده یا از نوع ابتدایی است یا ارجاعی به یک شی‌ء دیگر. برای نمونه توجه کنید که سن از نوع int (نوع ابتدایی) است و نام از نوع String (یک شی‌ء) است. JDK همه کلاس‌های مفید مانند java.lang.String را در خود دارد و کلاس‌های موجود در پکیج java.lang لازم نیست وارد شوند (کامپایلر جاوا این کار را بر عهده می‌گیرد). اما هر زمان ‌که نوع داده یک کلاس JDK مانند نوع String باشد یا از نوع تعریف‌شده از سوی کاربر باشد، دستورزبان آن مشابه خواهد بود.

جدول 1، هشت نوع داده ابتدایی را نشان می‌دهد. مقدار اولیه‌ای که هر نوع داده، در صورت عدم بیان صریح در زمان تعریف، می‌گیرد نیز ذکر شده است.

جدول 1- انواع داده ابتدایی

نوعاندازهمقدار پیش‌فرضمحدوده مقادیر
booleann/afalsetrue یا false
byte8 bits0-128 تا 127
char16 bits(unsigned)u0000 تا uffff یا 0  تا 65535
short16 bits0-32768 تا 32767
int32 bits0-2147483648 تا 2147483647
long64 bits0-9223372036854775808 تا 9223372036854775807
float32 bits0.01.17549435e-38 تا 3.4028235e+38
double64 bits0.04.9e-324 تا 1.7976931348623157e+308

گزارش‌دهی داخلی

پیش از این‌که وارد بحث کدنویسی بشویم باید بدانید که برنامه‌ها کارهایی را که انجام می‌دهند، گزارش می‌کنند. پلتفرم جاوا شامل پکیج است که یک سازوکار گزارش دهی درونی برای گرداوری اطلاعات به شکل قابل‌خواندن است. گزارش دهنده‌ها (Logger) نهادهای عنوان داری هستند که از طریق فراخوانی متد استاتیک به کلاس Logger ایجاد می‌شوند.

mport java.util.logging.Logger;
//...
Logger l = Logger.getLogger(getClass().getName());

وقتی متد ()GetLogger فراخوانی می‌شود یک مقدار String به آن ارسال می‌شود. در حال حاضر، فقط نام کلاسی که کد فعلی در آن قرار دارد را ارسال می‌کنیم. از هر متد معمولی (یعنی غیر استاتیک)، کد قبلی همواره نام کلاس را ارجاع می‌دهد و به Logger ارسال می‌کند.

اگر یک فراخوانی Logger درون متد استاتیک صورت بگیرد ارجاع نام از کلاسی که درون آن هستید صورت می‌گیرد:

Logger l = Logger.getLogger(Person.class.getName());

در این مثال کدی که درون آن هستیم کلاس Person است. بنابراین حالت ویژه‌ای از نام این کلاس را ارجاع می‌دهیم که شی‌ء کلاس را بازمی‌گرداند (در ادامه بیشتر توضیح خواهیم داد) و خصوصیت نام آن را دریافت می‌کند.

تکمیل کد برنامه

پیش از این‌که وارد تست پروژه بشویم نخست وارد ویرایشگر کد منبع ایکلیپس می‌شویم و این کد را پس از public class Person (در قطعه کد 3) اضافه می‌کنیم و کد نهایی به شکل زیر خواهد بود:

package com.makotojava.intro;
public class Person {
private String name;
private int age;
private int height;
private int weight;
private String eyeColor;
private String gender;
}

ایکلیپس یک تولیدکننده کد مفید برای ایجاد بخش‌های getter و setter دارد. برای امتحان کردن تولیدکننده کد، ماوس را روی تعریف کلاس person ببرید و بر روی Source > Generate Getters and Setters کلیک کنید. وقتی صفحه باز شد گزینه Select All را همانند شکل زیر انتخاب کنید.

ایکلیپس بخش‌های getter و setter را تولید می‌کند.

در نقطه درج (Insertion point)، گزینه Last Member را انتخاب و روی OK کلیک کنید.

در بخش هفتم، حالت تست در جاوا را بررسی و انواع فراخوانی متدها را معرفی می‌کنیم.

منبع

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *