JAVA METODAI

Java metodų parametrai ir argumentai

Parametrai leidžia perduoti metodui duomenis. Dėl jų tas pats metodas gali atlikti veiksmą su skirtingomis reikšmėmis, todėl jo nereikia perrašyti kiekvienam atvejui.

Kas yra parametras?

Parametrai rašomi metodo deklaracijos skliaustuose. Kiekvienam parametrui nurodomas jo tipas ir pavadinimas. Metodo viduje parametras veikia kaip vietinis kintamasis.

public class Main {
    static void pasisveikinti(String vardas) {
        System.out.println("Labas, " + vardas + "!");
    }

    public static void main(String[] args) {
        pasisveikinti("Ona");
        pasisveikinti("Jonas");
        pasisveikinti("Rūta");
    }
}
Konsolės rezultatas

Labas, Ona!
Labas, Jonas!
Labas, Rūta!

  1. Metodo deklaracijoje String vardas yra parametras – laikina vieta vienam tekstui.
  2. Pirmas iškvietimas perduoda argumentą Ona. Metodo viduje parametras vardas tada saugo Onos vardą.
  3. Metodas sujungia tekstą Labas, , gautą vardą ir šauktuką.
  4. Kiti du iškvietimai tam pačiam parametrui perduoda Joną ir Rūtą.
  5. Tas pats metodo kodas įvykdomas tris kartus, bet kiekvieną kartą su kitu vardu.

Parametras ir argumentas

public class Main {
    static void rodytiMiesta(String miestas) {
        System.out.println("Miestas: " + miestas);
    }

    public static void main(String[] args) {
        rodytiMiesta("Kaunas");
    }
}
Konsolės rezultatas

Miestas: Kaunas

  1. String miestas yra parametras, nes jis parašytas metodo rodytiMiesta() deklaracijoje.
  2. Parametrą galima įsivaizduoti kaip tuščią dėžutę, laukiančią teksto.
  3. Kaunas yra argumentas, nes ši konkreti reikšmė perduodama metodo iškvietimo metu.
  4. Iškvietus metodą, argumentas Kaunas įdedamas į parametro miestas dėžutę.
  5. println() panaudoja šią reikšmę ir parodo Miestas: Kaunas.
Parametro ir argumento skirtumas
SąvokaKur naudojama?Pavyzdys
ParametrasMetodo deklaracijojeString miestas
ArgumentasMetodo iškvietime"Kaunas"

Argumento reikšmė metodo iškvietimo metu priskiriama atitinkamam parametrui.

Keli parametrai

Metodas gali turėti kelis parametrus. Jie deklaracijoje ir iškvietime atskiriami kableliais:

public class Main {
    static void rodytiZmogu(String vardas, int amzius) {
        System.out.println(vardas + " yra " + amzius + " metų");
    }

    public static void main(String[] args) {
        rodytiZmogu("Asta", 12);
        rodytiZmogu("Mantas", 25);
        rodytiZmogu("Ona", 34);
    }
}
Konsolės rezultatas

Asta yra 12 metų
Mantas yra 25 metų
Ona yra 34 metų

  1. Metodas turi du parametrus: tekstinį vardas ir skaitinį amzius.
  2. Pirmo iškvietimo argumentai yra Asta ir 12.
  3. Java argumentus susieja pagal jų vietą: pirmą su vardas, antrą su amzius.
  4. Metodas sujungia abi gautas reikšmes į vieną aiškų sakinį.
  5. Kiekvienas kitas iškvietimas perduoda naują vardą ir amžių, todėl gauname tris skirtingas eilutes.
Argumentų kiekis, tvarka ir tipai turi atitikti parametrus.

rodytiZmogu("Asta", 12) yra teisinga, o rodytiZmogu(12, "Asta") neatitinka deklaruotos tvarkos.

Argumentai nebūtinai yra tiesioginės reikšmės

Metodo iškvietimui galima perduoti kintamuosius arba suderinamo tipo išraiškų rezultatus:

public class Main {
    static void rodytiZmogu(String vardas, int amzius) {
        System.out.println(vardas + " yra " + amzius + " metų");
    }

    public static void main(String[] args) {
        String zmogausVardas = "Rūta";
        int gimimoMetai = 2000;
        int dabartiniaiMetai = 2026;

        rodytiZmogu(zmogausVardas, dabartiniaiMetai - gimimoMetai);
    }
}
Konsolės rezultatas

Rūta yra 26 metų

  1. Kintamasis zmogausVardas saugo tekstą Rūta.
  2. Kintamieji gimimoMetai ir dabartiniaiMetai saugo skaičius 2000 bei 2026.
  3. Pirmam parametrui perduodama kintamajame saugoma vardo reikšmė.
  4. Antram parametrui perduodamas išraiškos 2026 - 2000 rezultatas, tai yra 26.
  5. Metodas gauna galutines reikšmes ir parodo Rūta yra 26 metų.

Sąlygos metodo viduje

Parametras gali būti naudojamas skaičiavimuose, cikluose ir sąlyginėse instrukcijose:

public class Main {
    static void tikrintiPilnametyste(String vardas, int amzius) {
        if (amzius >= 18) {
            System.out.println(vardas + " yra pilnametis žmogus");
        } else {
            System.out.println(vardas + " dar nėra pilnametis žmogus");
        }
    }

    public static void main(String[] args) {
        tikrintiPilnametyste("Jonas", 20);
    }
}
Konsolės rezultatas

Jonas yra pilnametis žmogus

  1. Iškvietimas perduoda du argumentus: vardą Jonas ir amžių 20.
  2. Metodo viduje sąlyga patikrina, ar amzius >= 18.
  3. Palyginimas 20 >= 18 yra true.
  4. Todėl vykdomas pirmasis if blokas ir konsolėje parodoma, kad Jonas yra pilnametis.
  5. Jeigu perduotume amžių 15, sąlyga būtų klaidinga ir būtų vykdomas else blokas.

Parametro galiojimo sritis

Parametras pasiekiamas tik metodo, kuriame jis deklaruotas, viduje. Pasibaigus metodo vykdymui jo vietinė reikšmė nebesaugoma. Kitas to paties metodo iškvietimas gauna naują argumentą ir naują parametro reikšmę.