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");
}
}Labas, Ona!
Labas, Jonas!
Labas, Rūta!
- Metodo deklaracijoje
String vardasyra parametras – laikina vieta vienam tekstui. - Pirmas iškvietimas perduoda argumentą Ona. Metodo viduje parametras
vardastada saugo Onos vardą. - Metodas sujungia tekstą Labas, , gautą vardą ir šauktuką.
- Kiti du iškvietimai tam pačiam parametrui perduoda Joną ir Rūtą.
- 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");
}
}Miestas: Kaunas
String miestasyra parametras, nes jis parašytas metodorodytiMiesta()deklaracijoje.- Parametrą galima įsivaizduoti kaip tuščią dėžutę, laukiančią teksto.
- Kaunas yra argumentas, nes ši konkreti reikšmė perduodama metodo iškvietimo metu.
- Iškvietus metodą, argumentas Kaunas įdedamas į parametro
miestasdėžutę. println()panaudoja šią reikšmę ir parodo Miestas: Kaunas.
| Sąvoka | Kur naudojama? | Pavyzdys |
|---|---|---|
| Parametras | Metodo deklaracijoje | String miestas |
| Argumentas | Metodo 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);
}
}Asta yra 12 metų
Mantas yra 25 metų
Ona yra 34 metų
- Metodas turi du parametrus: tekstinį
vardasir skaitinįamzius. - Pirmo iškvietimo argumentai yra Asta ir
12. - Java argumentus susieja pagal jų vietą: pirmą su
vardas, antrą suamzius. - Metodas sujungia abi gautas reikšmes į vieną aiškų sakinį.
- Kiekvienas kitas iškvietimas perduoda naują vardą ir amžių, todėl gauname tris skirtingas eilutes.
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);
}
}Rūta yra 26 metų
- Kintamasis
zmogausVardassaugo tekstą Rūta. - Kintamieji
gimimoMetaiirdabartiniaiMetaisaugo skaičius2000bei2026. - Pirmam parametrui perduodama kintamajame saugoma vardo reikšmė.
- Antram parametrui perduodamas išraiškos
2026 - 2000rezultatas, tai yra26. - 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);
}
}Jonas yra pilnametis žmogus
- Iškvietimas perduoda du argumentus: vardą Jonas ir amžių
20. - Metodo viduje sąlyga patikrina, ar
amzius >= 18. - Palyginimas
20 >= 18yratrue. - Todėl vykdomas pirmasis
ifblokas ir konsolėje parodoma, kad Jonas yra pilnametis. - Jeigu perduotume amžių
15, sąlyga būtų klaidinga ir būtų vykdomaselseblokas.
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ę.

