Darsliklar Java Funksiya parametrlari

Java Java Funksiya parametrlari

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.

Parametrmetod 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.