Loading...

Методдун параметрлери

 

Параметрлердин жардамы менен биз ар кандай маалыматтарды эсептөөлөр үчүн колдонула турган ыкмаларга өткөрө алабыз. Мисалы:

static void sum(int x, int y){

    int z = x + y;

    System.out.println(z);

}

Бул функция эки параметрди - эки санды алат, аларды кошуп, алардын суммасын консолго басып чыгарат.

 

Жана бул ыкманы программада чакырганда, параметрдин түрүнө туура келген параметрлердин ордуна маанилерди өткөрүп беришибиз керек:

public class Program{

     

    public static void main (String args[]){

        int a = 6;

        int b = 8;

        sum(a, b);  // 14

        sum(3, a);  // 9

        sum(5, 23); // 28

    }

    static void sum(int x, int y){

        int z = x + y;

        System.out.println(z);

    }

}

Сумма ыкмасы эки int маанини кабыл алгандыктан, параметрлердин ордуна эки int маани берилиши керек. Булар int тибин чагылдырган же автоматтык түрдө int түрүнө айландырылуучу маалымат түрлөрүнүн сандык литералдары жана өзгөрмөлөрү болушу мүмкүн. Параметрлердин ордуна берилген маанилер аргументтер деп да аталат. Маанилер позиция боюнча параметрлерге өткөрүлөт, башкача айтканда, биринчи аргумент биринчи параметрге, экинчи аргумент экинчи параметрге ж.б.у.с.

 

Дагы бир мисалды карап көрөлү:

public class Program{

     

    public static void main (String args[]){

         

        display("Tom", 34);

        display("Bob", 28);

        display("Sam", 23);

    }

    static void display(String name, int age){

        

        System.out.println(name);

        System.out.println(age);

    }

}

Display vtnjle эки параметрди алат. Биринчи параметр String тибинде, экинчиси int тибинде. Ошондуктан, методду чакырганда, ага адегенде сапты, андан кийин санды өткөрүү керек.

 

Өзгөрмө узундуктугы параметрлер

Метод бир түрдөгү өзгөрмө узундуктун параметрлерин кабыл алат. Мисалы, ыкмага сандар жыйындысын өткөрүп, алардын суммасын эсептешибиз керек, бирок канча сан өтөөрүн так билбейбиз - 3, 4, 5 же андан көп. Өзгөрмө узундук параметрлери бул маселени чечет:

public class Program{

     

    public static void main (String args[]){

         

        sum(1, 2, 3);           // 6

        sum(1, 2, 3, 4, 5);     // 15

        sum();                  // 0

    }

    static void sum(int ...nums){

        

        int result =0;

        for(int n: nums)

            result += n;

        System.out.println(result);

    }

}

int ...nums параметринин аталышынын алдындагы эллипс анын милдеттүү эмес экенин жана массивди билдирерин көрсөтөт. Биз бир санды, бир нече сандарды суммалоо ыкмасына өткөрө алабыз же эч кандай параметрди өткөрө албайбыз. Андан тышкары, эгерде биз бир нече параметрлерди өткөргүбүз келсе, анда кошумча параметр аягында көрсөтүлүшү керек:

public static void main(String[] args) {

        

    sum("Welcome!", 20,10);

    sum("Hello World!");

}

static void sum(String message, int ...nums){

        

    System.out.println(message);  

    int result =0;

    for(int x:nums)

        result+=x;

    System.out.println(result);

}