پارامترهای متد (Java Method Parameters)
پارامترهای متد: ارسال داده به داخل متد 📥📨
پارامترها (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 استفاده میکنیم:
بخش تخصصی: مهندسی متدها و مدیریت حافظه 🛠️💎
در این بخش، به مفاهیمی میپردازیم که برای درک عمیق مدیریت حافظه و کارایی در جاوا حیاتی هستند.
۱. پشته متد (Method Stack) و فریمها
هر بار که متدی فراخوانی میشود، جاوا یک Stack Frame جدید در حافظه Stack ایجاد میکند. این فریم شامل متغیرهای محلی و پارامترهای متد است. وقتی متد تمام میشود، فریم آن از پشته حذف (Pop) میشود. درک این فرآیند برای دیباگ کردن خطاهایی مثل StackOverflowError بسیار مهم است.
۲. انتقال پارامتر: Pass-by-Value
یک نکته بسیار مهم در جاوا این است که جاوا همیشه مقادیر را به صورت Pass-by-Value منتقل میکند. برای انواع اولیه، خودِ مقدار کپی میشود. برای اشیاء (Objects)، "کپیِ ریفرنس" به متد فرستاده میشود. این یعنی شما میتوانید ویژگیهای یک شیء را داخل متد تغییر دهید، اما نمیتوانید خودِ ریفرنس اصلی را به شیء دیگری متصل کنید.
۳. کدهای ماژولار و اصل Single Responsibility
در مهندسی نرمافزار حرفهای، هر متد باید فقط و فقط "یک کار" انجام دهد. اگر متد شما بیش از ۲۰ خط شده یا نام آن شامل کلمه "And" است، احتمالاً باید آن را به متدهای کوچکتر تقسیم کنید. این کار باعث میشود کد شما قابل تست (Testable) و قابل نگهداری باشد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
متدی به نام sum بسازید که دو پارامتر int بگیرد و مجموع آنها را return کند. سپس آن را با اعداد 10 و 20 فراخوانی کرده و نتیجه را چاپ کنید.
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));
}
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.