ITSI.IR – در این درس میخواهیم کار با کلاس ها و متد های کلاس را در جاوا شروع کنیم . هر کلاسی که شما در جاوا ایجاد میکنید به یک نوع جدید تبدیل می شود که می تواند برای اعلان متغیر ها و ایجاد شی ها بکار گرفته شود .
این درس را با یک مثال ادامه می دهیم . در این مثال دو کلاس با نام های Account و AccountTest ایجاد می کنیم . کلاس دوم که AccountTest نام دارد به طور معروف Application class می باشد که متد main در آن قرار داده می شود و یک شی از کلاس Account در آن ایجاد خواهد شد .
کلاس Account ما دارای یک متغیر نمونه به نام name میباشد . شاید سوال داشته باشید که متغیر نمونه چیست ؟ متغیر های نمونه کلاس مبادرت به نگهداری هر سی ( یعنی هر نمونه ) از کلاس می کنند . کلاس Account ما دارای دو متد setName که نام برنامه مارا ذخیره می کند و همچنین getName که نام شی ما را برگرداند میباشد .

برنامه با اعلان کلاس شروع می شود که با کلمه کلیدی و تصریح کننده دسترسی public میباشد .اعلان کلاس با کلمه کلیدی class و سپس نام کلاس شروع می شود .
هر شی از یک کلاس ایجاد می شود دارای یک سری صفات می باشد که به صورت همان متغیر های نمونه پیاده سازی می شود و همیشه آن صفات را همراه خود دارد . متغیر های نمونه قبل از اینکه متد ها بر روی شی فراخوانی شوند ایجاد می شوند و در زمان اجرا و بعد از آن نیز وجود دارند . هر شی ( متغیر ) که از یک کلاس ایجاد می کنید یک کپی جدا از متغیر های نمونه را در خود دارد .
دقت کنید که متغیر های نمونه در محدوده کلاس و خارج از بدنه متد های کلاس ایجاد می شود . به طور مثال در این قسمت متغیر نمونه name را ایجاد کردیم :

بطور معمول متغیر های نمونه را بصورت private ایجاد می کنیم .

متد setName از کلاس Account

اولین خط در این قطعه سرآیند متد یا هدر متد گفته می شود . بعد از کلمه کلیدی public نوع برگشتی متد را که مشخص می کند متد ما مقداری را برگشت میدهد یا نه قرار داده می شود . نوع برگشتی void این موضوع را مشخص میکند که متد setName بعد از اتمام کار خود هیچ مقداری را برگشت نخواهد داد . متد SetName دارای یک پارامتر میباشد به name از نوع String است . این پارامتر یعنی اگر متد Setname را استفاده کنیم باید یک آرگومان از نوع String را در اختیار آن قرار دهیم ( در ادامه توضیح خواهم داد )
نکته : متغیر های ایجاد شده در بدنه متد متغیر محلی به حساب می آیند که فقط در بدنه همان متد قابل استفاده می شوند و اگر متد به کار خود پایان دهد مقادیر متغیر ها از بین می روند .
در بدنه متد SetName کد زیر قرار دارد :

این خط کد به ما می گوید که مقدار پارامتر name را به متغیر نمونه name تخصیص می دهد تا نام در شی ذخیره شود .

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

متد getName از کلاس Account

این متد نام یک شی کلاس Account را به فراخوان برگشت می دهد . این متد دارای هیچ پارامتری نمیباشد و نیاز به آرگومان برای فراخوانی ندارد . اما اگر دقت کنید نوع برگشتی String باعث می شود تا متد بعد از فراخوانی یک مقدار رشته ای را برگشت دهد .
عبارت return مقدار رشته ای متغیر نمونه name را به فراخوان برگشت می دهد .

شروع یادگیری کلاس ها و متد های کلاس در جاوا

خروجی

خب به سراغ کلاس AccountTest می رویم :

در اینجا فقط به موارد جدید می پردازیم و دیگر کد ها که در دروس قبلی توضیح داده شده است را بررسی نمیکنیم .

این خط یک شی جدید از کلاس Account ایجاد می کند و آن را به متغیر myAccount که از نوع Account است اختصاص می دهد . متغیر myAccount با نتیجه رابطه ایجاد نمونه کلاس new myAccount() مقدار دهی اولیه شده است . کلمه کلیدی new یک شی جدید از کلاس مشخص شده را ایجاد می کند ( Account ) . حضور پرانتر ها در سمت راست Account ضروری است .

Null مقدار اولیه پیش فرض برای متغیر های String

اگر خروجی برنامه را مشاهده کنید ابتدا مقدار null را چاپ کرده است . بر خلاف متغیر های محلی ، به بصورت خودکار مقدار دهی نمیشوند متغیر های نمونه دارای یک مقدار پیشفرض میباشند . متغیر های نمونه از نوع String با null مقدار دهی اولیه می شوند .
دستور myAccount.getName() متد getName از کلاس Account را فراخوانی و چاپ می کند .

این خط کد یک مقدار String را به متغیر theName اختصاص می دهد که توسط کاربر وارد می شود . در درس مربوط به جمع اعداد از nextInt() استفاده کردیم و برای گرفتن رشته ها از nextLine() استفاده می کنیم .

با استفاده از این خط کد متغیر theName به به عنوان پارامتر به متد SetName ارسال میکنیم .

این خط کد هم که همانطور که مشخص است مقدار جدید که به متد setName ارسال شده بود را توسط متد getName به دست آورده و چاپ می کند .
اگر سوالی در مورد این درس و یا قسمتی از کد را متوجه نشدید در بخش نظرات اعلام کنید تا راهنمایی بیشتر در اختیار شما قرار داده شود .

دانلود فایل آموزش

پسورد : itsi.ir

دانلود PDF آموزش