Parametrii metodelor
Cu ajutorul parametrilor putem transmite în metode diverse date, care vor fi utilizate pentru calcule. De exemplu:
static void sum(int x, int y){
int z = x + y;
System.out.println(z);
}
Această funcție acceptă doi parametri - două numere, le adună și afișează suma lor în consolă.
La apelul acestei metode în program, trebuie să transmitem în locul parametrilor valori care corespund tipului parametrului:
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);
}
}
Deoarece metoda sum acceptă două valori de tip int, trebuie să transmitem două valori de tip int în locul parametrilor. Acestea pot fi fie literale numerice, fie variabile de tipuri de date care reprezintă tipul int sau care pot fi convertite automat în tipul int. Valorile care sunt transmise în locul parametrilor se numesc și argumente.
Valorile se transmit parametrilor pe poziție, adică primul argument este transmis primului parametru, al doilea argument celui de-al doilea parametru și așa mai departe.
Să analizăm un alt exemplu:
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);
}
}
Metoda display acceptă doi parametri. Primul parametru reprezintă tipul String, iar al doilea - tipul int. Prin urmare, la apelul metodei trebuie să transmitem mai întâi un șir de caractere, iar apoi un număr.
Parametrii cu lungime variabilă
O metodă poate accepta parametri cu lungime variabilă de același tip. De exemplu, dacă trebuie să transmitem în metodă un set de numere și să calculăm suma lor, dar nu știm exact câte numere vor fi transmise - 3, 4, 5 sau mai multe. Parametrii cu lungime variabilă permit rezolvarea acestei probleme:
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);
}
}
Trei puncte înainte de numele parametrului int ...nums indică faptul că acesta va fi opțional și va reprezenta un array. Putem transmite în metoda sum un număr, mai multe numere sau niciun parametru. De asemenea, dacă dorim să transmitem mai mulți parametri, parametrul opțional trebuie indicat la sfârșit:
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);
}
Aceasta metodă acceptă un șir de caractere și o serie de numere ca parametri.