Considere a necessidade de criar um método que compara dois números inteiros. O método deve retornar true se o primeiro número for maior que o segundo, e false caso contrário.
public class ComparadorNumeros {
public static void main(String[] args) {
int x = 49;
int y = 56;
boolean resultado = compararNumeros(x, y); // Aqui estamos passando os valores das variáveis x e y
System.out.println("resultado = " + resultado);
}
public static boolean compararNumeros(int valor1, int valor2) {
if (valor1 > valor2) {
return true;
} else {
return false;
}
}
}
No método principal (main), as variáveis x e y são usadas para enviar seus valores reais ao método compararNumeros. Isso demonstra que o que é transmitido não são as próprias variáveis, mas sim os dados associados a elas.
Considerações Impotrantes sobre Métodos
- Métodos não executam automaticamente: Eles precisam ser invocados explicitamente.
- A ordem de execução depende da ordem de chamada: A sequência dos métodos será respeitada conforme forem chamados no código.
- Não é permitido aninhar métodos diretamente: Um método não pode conter outro método dentro de si.
- O modificador
voidtem restrições comreturn:voidsignifica que o método não retorna nenhum valor.returnsem valor serve apenas para encerrar o método.returncom valor não pode coexistir comvoid.
public class TesteVoidReturn {
public static void main(String[] args) {
metodoSemRetorno();
}
public static void metodoSemRetorno() {
//return 1; // Isso causaria erro porque o método é declarado como void
return; // Correto: apenas encerra o método
}
}
Um exemplo onde o método retorna um valor específico:
public class TesteReturnValor {
public static void main(String[] args) {
int numero = metodoComRetorno();
System.out.println("O método retornou: " + numero);
}
public static int metodoComRetorno() {
return 42; // Retorna um valor inteiro
}
}
- Um método não pode ter múltiplos returns consecutivos: Cada método só pode ter uma única saída válida.
Por exemplo, considere o seguinte cenário:
public class MultiplosReturns {
public static boolean verificarValores(int a, int b) {
if (a > b) {
return true;
} else if (a < b) {
return false;
} else {
throw new IllegalArgumentException("Os valores são iguais");
}
}
}
No caso acima, se a == b, o método lançará uma exceção, pois não há um retorno direto definido para essa condição.
Dicas Práticas
- Defina métodos antes de chamá-los.
- Para métodos sem retorno (
void), exiba o resultado diretamente dentro do método. - Para métodos com retorno, utilize uma variável para armazenar o valor retornado e depois mostre esse valor.
- Pratique implementando diferentes tipos de métodos para atender a um único requisito simples, como somar dois números.