دوره‌ها / JAVA / پارامترهای متد (Java Method Parameters)

پارامترهای متد (Java Method Parameters)

15 دقیقه Article

پارامترهای متد: ارسال داده به داخل متد 📥📨

پارامترها (Parameters) مانند متغیرهایی عمل می‌کنند که داخل متد تعریف می‌شوند و اجازه می‌دهند اطلاعات را به متد پاس بدهیم تا عملیات را روی آن‌ها انجام دهد.

۱. تعریف پارامتر

پارامترها داخل پرانتزِ متد مشخص می‌شوند. شما باید نوع داده و نام پارامتر را بنویسید:

{code_block('static void myMethod(String fname) {\n System.out.println(fname + " Rezayi");\n}')}

۲. مقداردهی (Arguments)

به مقادیری که موقع فراخوانی به متد می‌فرستیم، Argument می‌گویند:

{code_block('myMethod("Ali");\nmyMethod("Sara");')}

۳. چندین پارامتر

شما می‌توانید هر تعداد پارامتری که نیاز دارید با ویرگول جدا کنید:

{code_block('static void checkRecord(String name, int age) {\n System.out.println(name + " is " + age + " years old.");\n}')}

مقادیر بازگشتی (Return Values):

اگر بخواهیم متد یک نتیجه‌ای را به ما برگرداند، به جای void از نوع داده مورد نظر (مثل int یا String) استفاده می‌کنیم و از کلمه کلیدی return استفاده می‌کنیم:

{code_block('static int plusFive(int x) {\n return 5 + x;\n}\n\npublic static void main(String[] args) {\n System.out.println(plusFive(3)); // خروجی: 8\n}')}
ترتب پارامترها: هنگام فراخوانی متد، باید آرگومان‌ها را دقیقاً به همان ترتیبی که تعریف شده‌اند ارسال کنید. ارسال یک رشته به جای عدد باعث خطای کامپایل می‌شود.
استفاده از شرط در متد: معمولاً از پارامترها برای تصمیم‌گیری استفاده می‌شود (مثلاً متدی که سن را می‌گیرد و می‌گوید فرد مجاز به ورود هست یا نه).
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی متدها و مدیریت حافظه 🛠️💎

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

۱. پشته متد (Method Stack) و فریم‌ها

هر بار که متدی فراخوانی می‌شود، جاوا یک Stack Frame جدید در حافظه Stack ایجاد می‌کند. این فریم شامل متغیرهای محلی و پارامترهای متد است. وقتی متد تمام می‌شود، فریم آن از پشته حذف (Pop) می‌شود. درک این فرآیند برای دیباگ کردن خطاهایی مثل StackOverflowError بسیار مهم است.

۲. انتقال پارامتر: Pass-by-Value

یک نکته بسیار مهم در جاوا این است که جاوا همیشه مقادیر را به صورت Pass-by-Value منتقل می‌کند. برای انواع اولیه، خودِ مقدار کپی می‌شود. برای اشیاء (Objects)، "کپیِ ریفرنس" به متد فرستاده می‌شود. این یعنی شما می‌توانید ویژگی‌های یک شیء را داخل متد تغییر دهید، اما نمی‌توانید خودِ ریفرنس اصلی را به شیء دیگری متصل کنید.

۳. کدهای ماژولار و اصل Single Responsibility

در مهندسی نرم‌افزار حرفه‌ای، هر متد باید فقط و فقط "یک کار" انجام دهد. اگر متد شما بیش از ۲۰ خط شده یا نام آن شامل کلمه "And" است، احتمالاً باید آن را به متدهای کوچک‌تر تقسیم کنید. این کار باعث می‌شود کد شما قابل تست (Testable) و قابل نگهداری باشد.

نکته پایانی: متدها بلوک‌های سازنده هر اپلیکیشن بزرگ هستند. هنرِ یک برنامه‌نویس جاوا در این است که چطور منطقِ پیچیده را به متدهای ساده، کوچک و قابل استفاده مجدد تقسیم کند.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

متد جمع دو عدد Easy
سوال تمرین

متدی به نام sum بسازید که دو پارامتر int بگیرد و مجموع آن‌ها را return کند. سپس آن را با اعداد 10 و 20 فراخوانی کرده و نتیجه را چاپ کنید.

پاسخ تمرین
JAVA
public class Main {
  static int sum(int a, int b) {
    return a + b;
  }
  
  public static void main(String[] args) {
    System.out.println(sum(10, 20));
  }
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.