جاوا - درس ششم

آموزش جاوا

توابع (Functions)

در جاوا تمامی تعاریف توابع باید داخل کلاس ها باشد:

آموزش جاوا

Foo تابعی است که در کلاس Main آن را تعریف کردیم. به نکات زیر در مورد این تابع توجه کنید:

  • static : بدین معناست که این تابع متعلق به خود کلاس است و نه شیئ ای خاص از این کلاس. بدین معنا که می توانیم این تابع را از کلاس دیگر به این صورت فراخوانی کنیم: Main.foo()
  • void : بدین معناست که این تابع مقداری را بر نمی گرداند. توابع در جاوا می توانند یک مقدار را برگردانند و این باید در تعریف تابع مشخص شود. اگرچه می توانید تنها از کلمه returnبرای خروج از تابع استفاده کنید.
  • این تابع هیچ پارامتر ورودی ندارد، اما واضح است که توابع جاوا، همچنان که در ادامه مشاهده خواهید کرد، می توانند پارامتر ورودی داشته باشند.

پارامترها

می توان گفت که پارامترهای ورودی به صورت مقدار یا اشاره گر به توابع جاوا داده می شوند. به صورت مقدار بدین معنی است که پارامترها در زمان اجرای تابع کپی می شوند. به مثال زیر توجه کنید:

آموزش جاوا

و این قسمتی از کدی است که تابع bar  در آن فراخوانی می شود:

آموزش جاوا

این طور تصور کنید که وقتی تابع bar(a, b) اجرا می شود، در ابتدای تابع دو خط زیر نوشته می شود:

آموزش جاوا

و بعد از آن، باقی تابع اجرا می شود.

این بدین معنی است که مقدار a  در num1  و مقدار b  در num2 کپی می شود. تغییر مقدار  num1  و num2 هیچ تاثیری در مقادیر a  و b ندارد.

اگر پارامترها شیئ باشند، قانون همچنان همان است، اما با اندکی تغییر. به عنوان مثال:

آموزش جاوا

و به صورت زیر از آن استفاده می کنیم:

آموزش جاوا

دوباره می توانیم همان دو خط را در آغاز تابع bar2 تصور کنیم:

آموزش جاوا

اما وقتی شیئ ها را مقداردهی می کنیم با زمانی که تایپ های اولیه را مقداردهی می کنیم تفاوت دارد. s1   و joe در واقع دو اشاره گر متفاوت به یک شیئ هستند. عبارت s1 == joe درست (true) است. این بدین معنا است که اگر تابعی را بر رویs1   فراخوانی کنیم، شیئ joe تغییر می کند. اما اگر مقدار s1  را به عنوان یک اشاره گر تغییر دهیم، اشاره گر joe تغییر نمی کند.

آموزش جاوا

تابع های غیر static

تابع های غیر static  نسبت به توابع static  بیشتر در جاوا استفاده می شوند. این گونه توابع تنها می توانند بر روی اشیا فراخوانی شوند و نه بر روی کل کلاس.

توابع غیر static  می توانند مقادیر متغیرهای یک شیئ را تغییر دهند و به آن ها دسترسی داشته باشند:

آموزش جاوا

فراخوانی این توابع نیازمند شیئی از کلاس Student است.

آموزش جاوا

خلاصه

  • هر تابعی از جاوا باید درون یک کلاس باشد.
  • توابع Static به یک کلاس و توابع غیر Static  به اشیا تعلق دارند.
  • پارامترهای تابع، اگر تایپ های اولیه باشند، مقدارشان کپی می شود (passed by value) و اگر شیئ باشند، کپی نشده و به اصطلاح به صورت اشاره گر منتقل می شوند (passed by reference).
بیشتر بخوانید:
Tags

Related Articles

جاوا- درس چهارم

جاوا- درس چهارم

جاوا- درس سوم

جاوا- درس سوم

جاوا- درس دوم

جاوا- درس دوم