Metod parametrlari — metodga tashqaridan ma’lumot uzatish vositasi. Parametrsiz metod doim bir xil ish qiladi; parametr bilan esa u har xil kirish uchun har xil natija beradi. Java’da parametr uzatishning o’ziga xos qoidalari bor va ularni tushunish muhim.
Parametr — metod e’lonida ko’rsatilgan, chaqiruvda beriladigan qiymatni qabul qiladigan o’zgaruvchi. Chaqiruvda beriladigan haqiqiy qiymat argument deb ataladi.
Bir necha parametr
Metod bir necha parametr qabul qilishi mumkin — ular vergul bilan ajratiladi:
public class Main {
static void malumot(String ism, int yosh) {
System.out.println(ism + ", " + yosh + " yosh");
}
public static void main(String[] args) {
malumot("Farrux", 26);
malumot("Master Sherkulov", 30);
}
}
Farrux, 26 yosh
Master Sherkulov, 30 yosh
Har bir parametrning turi alohida yoziladi. Argumentlar chaqiruvda tartib bo’yicha uzatiladi.
Java’da uzatish — qiymat bo’yicha
Java’da barcha parametrlar qiymat bo’yicha (pass by value) uzatiladi. Ya’ni primitiv turdagi parametr o’zgarsa, asl o’zgaruvchi o’zgarmaydi:
public class Main {
static void oshir(int son) {
son = son + 10; // faqat nusxa o'zgaradi
}
public static void main(String[] args) {
int a = 5;
oshir(a);
System.out.println(a); // a o'zgarmaydi
}
}
5
a o’zgarmadi, chunki metodga uning nusxasi uzatildi. Bu primitiv turlar uchun doim shunday.
Obyekt uzatilganda
Nozik nuqta: obyekt (referens tur) uzatilganda, uning manzilining nusxasi uzatiladi. Shuning uchun obyekt ichidagi ma’lumotni o’zgartirish mumkin, ammo obyektni butunlay boshqasiga almashtirib bo’lmaydi. Farqni jadvalda ko’ramiz:
| Tur | Metod ichida o’zgarsa | Asl qiymat |
|---|---|---|
Primitiv (int) |
nusxa o’zgaradi | o’zgarmaydi |
| Obyekt (massiv) | ichi o’zgaradi | o’zgaradi |
Massiv bilan misolda buni ko’ramiz:
public class Main {
static void ozgartir(int[] arr) {
arr[0] = 99; // massiv ichi o'zgaradi
}
public static void main(String[] args) {
int[] sonlar = {1, 2, 3};
ozgartir(sonlar);
System.out.println(sonlar[0]);
}
}
99
Massiv obyekt bo’lgani uchun metod uning ichini o’zgartira oldi.
O’zgaruvchan sonli parametr (varargs)
Java metodga istalgancha argument uzatish imkonini beradi — bu varargs (...) deb ataladi:
public class Main {
static int yigindi(int... sonlar) {
int jami = 0;
for (int son : sonlar) {
jami += son;
}
return jami;
}
public static void main(String[] args) {
System.out.println(yigindi(1, 2, 3));
System.out.println(yigindi(10, 20, 30, 40));
}
}
6
100
int... sonlar istalgancha son qabul qiladi va ularni massiv sifatida ishlaydi. Bu metodni juda moslashuvchan qiladi.
Xulosa
Bu bo’limda bir necha parametr, qiymat bo’yicha uzatish, primitiv va obyekt farqi hamda varargs (...) ni ko’rib chiqdik. Java’da uzatish qoidalarini tushunish xatolarning oldini oladi. Keyingi darsda obyektga yo’naltirilgan dasturlash (OOP) ga kirib boramiz.