0

آموزش برنامه نویسی جاوا

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی جاوا - قسمت ۳۷: آشنایی با متدها در زبان برنامه نویسی
چهارشنبه 2 بهمن 1392  11:53 AM


در این قسمت قصد داریم تا متدها را به طور دقیق تر مورد بررسی قرار دهیم. همانطور که قبلاً هم گفته شده هر شیئ در زبان برنامه نویسی جاوا دارای یکسری Attribute و یکسری Behavior می باشد. به طور مثال اگر شیئ ما داری یک متغیر از جنس int است که مقداری را در خود ذخیره می سازد، این متغیر به منزله یک Attribute برای شیئ ما محسوب می شود. از سوی دیگر Behavior ها بخشی از یک کلاس را تشکیل می دهند که قرار است کاری را انجام دهد که هر یک از این بخش ها یک Method نامیده می شود. تا این بخش از آموزش ما بارها و بارها متدهایی را به صورت ناخودآگاه مورد استفاده قرار داده ایم که یکی از این متدها print() می باشد که این وظیفه را دارا است که هر آنچه را که مابین دو پرانتز قرار گرفت را روی صفحه مانیتور به نمایش در آورد. متدها در زبان برنامه نویسی جاوا، هم به همراه Object ها و هم به همراه Class ها مورد استفاده قرار می گیرند.

نحوه ساخت یک متد تا حدودی شبیه به ساخت یک کلاس است. هر دو می توانند Modifier هایی مثل public, private و غیره بگیرند(برای آشنایی بیشتر با Modifier ها به آموزش سی و ششم مراجعه نمایید)، هر دو می بایست با یک علامت } شروع شده و با یک علامت { تکمیل گردند. متد وظیفه ای که بر عهده دارد این است که می بایست پس از آنکه فرا خوانده شد داده یا مقداری را بازگرداند. حال این مقدار می تواند مقدار یک متغیر ساده مثل int و یا double باشد و یا می تواند کلاسی از Object ها باشد.

حال برای درک بهتر متدها، یک پروژه جدید تحت عنوان 37th Session به معنی جلسه "سی و هفتم" ساخته و یک کلاس به نام MainClass به معنی "کلاس اصلی" در آن ایجاد می کنیم. حال کد ما در ابتدای کار می بایست به این شکل باشد:

  1. public class MainClass {
  2.  
  3. }

حال دو متغیر یکی از جنس int تحت عنوان price به معنی "قیمت" به مقدار اولیه 3000000 ایجاد کرده و یک شیئ از روی کلاس String تحت عنوان laptopName به معنی "نام لپ تاپ" به مقدار اولیه The Laptop Name Is Lenovo. به معنی "نام لپ تاپ لنوو هست." ایجاد می کنیم. حال کد تکمیل شده ما می بایست به شکل زیر باشد:

  1. public class MainClass {
  2. int price = 3000000;
  3. String laptopName = "Laptop Name Is Lenovo";
  4.  
  5. }

حال متدی ایجاد می کنیم که وظیفه خواهد داشت این داده ها را در پنجره Console نمایش دهد. کد تکمیل شده به شکل زیر خواهد بود:

  1. public class MainClass {
  2. int price = 3000000;
  3. String laptopName = "Laptop Name Is Lenovo";
  4. public void showData() {
  5. System.out.println(laptopName + " and its price is " + price);
  6. }
  7. }

در واقع هر متد از دو بخش تشکیل شده است، بخش Signature و بخش Body که در مثال فوق Signature با کلید واژه public شروع شده است به این معنی که این متد از هر کجای برنامه ما قابل دسترسی خواهد بود. سپس کلید واژه void مشاهده می شود که به این معنا است که هر موقع متد showData در برنامه فرا خوانده شد، این متد قرار نیست هیچ چیزی به طور مثال داده ای را اصطلاحاً return کند یا بازگرداند وصرفا وظیفه دارد هر آنچه را مابین دو علامت {} قرار گرفته است را مثلاً روی مانیتور نمایش دهد. سپس به نام متد می رسیم که در مثال فوق نام showData به معنی "داده ها را نشان بده" می باشد(همانطور که در قسمت های پیشین توضیح داده شد، نحوه نام گذاری متدها به این شکل است که کلمه اول در نام متد می بایست یک فعل باشد و علت این مسئله هم این است که از آنجا که متدها وظیفه دارند کاری انجام دهند، پس بهتر است در نامگذاری این دقت شود که نام متد هم با کاری که قرار است انجام دهد یکی باشد). سپس دو پرانتز به شکل () مقابل نام متد قرار می دهیم که وظیفه این پرانتز ها این است که اگر خواستیم پارامترهایی را برای متد خود در نظر بگریم داخل این دو پرانتز بنویسیم. در واقع ما با این کار می توانیم زمانیکه متد را فرا می خوانیم داده هایی را هر جنس در لحظه به متد خود منتقل نماییم. در این مثال ما قصد نداریم تا هیچ داده ای را به این شکل در حین فرا خواندن متد خود منتقل نماییم. در آموزش سی و هشتم نمونه ای از متدی را توضیح خواهیم داد که داخل پرانتز مقابل نام متد داده ای را قرار داده تا در حین فرا خواندن آن متد، آن داده هم منتقل شود. حال نوبت به بررسی Body متد خود می رسد. در حقیقت همانطور که در کد فوق ملاحظه می شود Body متد ما تحت عنوان showData حاوی یک دستور System.out.println(); برای نمایش داده چیزی روی صفحه مانیتور است. نکته ای که در اینجا حائز اهمیت است این است که در این دستور ما به متغیرهایی که قبلاً ایجاد کرده بودیم لینک داده ایم( به عبارت دیگر Body یک متد داخل دو کروشه قرار می گیرد). تا این مرحله از کدنویسی، ما موفق شده ایم تا یک متد که قرار است جمله ای را روی صفحه مانیتور به نمایش درآورد را ایجاد کنیم. حال می بایست این متد را فرا بخوانیم، برای این منظور یک کلاس جدید تحت عنوان ActionClass به معنی "کلاس عملیاتی" ایجاد کرده و از آنجا که این کلاس جدید قرار است به منزله نقطه شروع برنامه باشد پس نیاز داریم تا در حین ساخت آن گزینه public static void main را تیک بزنیم. حال کد ما می بایست به صورت زیر باشد:

  1. public class ActionClass {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. }
  6. }

حال در متد main در کلاس جدیدی که ایجاد کردیم یک شیئ از روی کلاس قبلی به صورت زیر می سازیم:

  1. public class ActionClass {
  2.  
  3. public static void main(String[] args) {
  4. MainClass myObject = new MainClass();
  5.  
  6. }
  7. }

در کد فوق ما نام کلاسی که می خواهیم از روی آن یک شیئ ایجاد کنیم را نوشته سپس نامی برای آن انتخاب کرده که در این مثال نام myObject به معنی "شیئ من" در نظر گرفته شده است. سپس یک علامت مساوی قرار داده و مجدداً نام کلاسی که می خواهیم شیئ از روی آن ساخته شود را می نویسیم و در نهایت یک علامت (); قرار می دهیم. شیئ ما ساخته شد. حال می خواهیم متدی که در کلاسی که از روی آن یک شیئ ساختیم را فرا بخوانیم. برای این منظور کد خود را به شکل زیر تکمیل می کنیم:

  1. public class ActionClass {
  2.  
  3. public static void main(String[] args) {
  4. MainClass myObject = new MainClass();
  5. myObject.showData();
  6.  
  7. }
  8. }

برای این منظور نام شیئی که جدیداً ساخته را نوشته سپس یک نقطه قرار داده و سپس نام متدی که در کلاس اصلی خود ساخته بودیم را می نویسیم و در نهایت علامت (); را در انتهای نام متد قرار می دهیم. حال برنامه را اجرا می کنیم:

920506-j37-IMAGE 1.jpg

خواهیم دید که برنامه ما پس از اجرا، متدی را فرا خواند که وظیفه داشت عبارت فوق را روی صفحه مانیتور به نمایش در آورد.

تشکرات از این پست
دسترسی سریع به انجمن ها