Parâmetros vs Argumentos: parâmetros são definidos na assinatura do método; argumentos são os valores concretos passados na chamada do método.
...). Internamente, o Java trata esses argumentos como um array.
Sintaxe: tipo... nomeDoParâmetro
O nomeDoParâmetro representa o array que contém todos os argumentos passados na chamada. O varargs é útil quando não se sabe de antemão quantos argumentos serão fornecidos.
O for-each aprimorado é uma estrutura da linguagem usada para percorrer arrays e coleções de forma simples.
Já o varargs é um recurso usado na assinatura de métodos para permitir o recebimento de uma quantidade variável de argumentos.
Esses dois recursos podem ser usados em conjunto: o método recebe os valores com varargs, e dentro dele esses valores podem ser percorridos com um for-each.
// Exemplo: método varargs usando loop for-each aprimorado // O loop "for (int numero : numeros)" é o for-each aprimorado — NÃO é o método forEach(). // O método somarNumeros usa varargs (int... numeros) para aceitar qualquer quantidade de argumentos. public class MetodoVarargs { public static void main(String[] args) { int[] numeros = {10, 20, 30, 40, 50}; // Loop for-each aprimorado percorrendo o array int soma = 0; for (int numero : numeros) { System.out.println(numero); soma += numero; } System.out.println("Soma: " + soma); // Chamando o método varargs com argumentos individuais (sem criar array) int resultado = somarNumeros(10, 20, 30, 40, 50); System.out.println("Resultado da soma: " + resultado); } // Método com varargs: recebe quantidade variável de int e percorre com for-each aprimorado public static int somarNumeros(int... numeros) { int soma = 0; for (int numero : numeros) { System.out.println(numero); soma += numero; } return soma; } }
10
20
30
40
50
Soma: 150
10
20
30
40
50
Resultado da soma: 150
Veja um exemplo de método que aceita um número variável de parâmetros inteiros e calcula a soma:
public class MetodosComVarargs {
public static void main(String[] args) {
// Chamando o método com diferentes quantidades de parâmetros
int soma1 = somarNumeros(5, 10);
int soma2 = somarNumeros(1, 2, 3, 4, 5);
int soma3 = somarNumeros(7);
int soma4 = somarNumeros(); // É possível chamar sem parâmetros!
System.out.println("Soma 1: " + soma1);
System.out.println("Soma 2: " + soma2);
System.out.println("Soma 3: " + soma3);
System.out.println("Soma 4: " + soma4);
// Outro exemplo: imprimir strings
imprimirStrings("Java", "é", "uma", "linguagem", "poderosa");
imprimirStrings("Olá", "Mundo");
}
// Método que aceita um número variável de parâmetros inteiros
public static int somarNumeros(int... numeros) {
int soma = 0;
// Percorre o array de números (internamente, varargs são tratados como arrays)
for (int numero : numeros) {
soma += numero;
}
return soma;
}
// Método que aceita um número variável de strings
public static void imprimirStrings(String... textos) {
System.out.print("\nTextos: ");
// Percorre o array de strings
for (String texto : textos) {
System.out.print(texto + " ");
}
System.out.println();
}
}
Soma 1: 15
Soma 2: 15
Soma 3: 7
Soma 4: 0
Textos: Java é uma linguagem poderosa
Textos: Olá Mundo
Teste seus conhecimentos sobre varargs e loop forEach em Java:
Reforce o conteúdo desta aula com mais dois exercícios práticos: