پارامترها و Overloading
پارامترهای متد، مقدار پیشفرض و سربارگذاری (Overloading) در جاوا.
پارامترها و آرگومانها
- پارامتر: متغیر در تعریف متد —
int a - آرگومان: مقدار واقعی هنگام فراخوانی —
5
static int add(int a, int b) { ← پارامترها
return a + b;
}
add(5, 3); ← آرگومانها
جاوا مقدار پیشفرض ندارد!
برخلاف برخی زبانها، جاوا از default parameters پشتیبانی نمیکند — راه حل: Overloading
Overloading — چند متد همنام
متدهای همنام با پارامترهای متفاوت:
static int add(int a, int b) {
return a + b;
}
static int add(int a, int b, int c) {
return a + b + c;
}
static double add(double a, double b) {
return a + b;
}
// فراخوانی — کامپایلر خودش درست را انتخاب میکند
add(1, 2); ← متد اول
add(1, 2, 3); ← متد دوم
add(1.5, 2.5); ← متد سوم
قواعد Overloading
- نام یکسان ✓
- تعداد یا نوع پارامترها متفاوت ✓
- فقط نوع بازگشتی متفاوت ✗ (خطا!)
مثال عملی: متد greet
static String greet() {
return "سلام!";
}
static String greet(String name) {
return "سلام " + name + "!";
}
static String greet(String name, String title) {
return "سلام " + title + " " + name + "!";
}
پاس دادن با مقدار (Pass by Value)
جاوا همیشه by value پاس میدهد — برای انواع اولیه، تغییر داخل متد اثر بیرون ندارد:
static void change(int x) {
x = 100; ← فقط کپی تغییر میکند
}
int num = 5;
change(num);
System.out.println(num); ← 5 (تغییر نکرد!)
آرایهها و اشیاء استثنا هستند — مرجع آنها کپی میشود، پس محتوا قابل تغییر است (مثل دیدیم در مبحث آرایهها).
این مبحث بخشی از دوره آموزش کامل جاوا است.