1. A returndeclaração
Acha que já aprendeu tudo sobre os métodos Java? O que quer que você pense que sabe, você ainda não sabe nem a metade.
Vamos começar com algo simples. Por exemplo, Java tem uma instrução de retorno que permite encerrar instantaneamente o método que o chama. Aqui está a declaração:
return;
É simples: a palavra solitária returnseguida de ponto e vírgula. Assim que o programa executa essa instrução, o método atual é encerrado imediatamente e a chamada continua.
Se returnfor chamado no mainmétodo, o mainmétodo terminará imediatamente e, com ele, todo o programa.
Exemplo:
|
O fill método preenche parte do array passado com value. A parte do array a ser preenchida é definida pelos índices from e to. Se from for menor 0ou to maior que o comprimento da matriz, o método será encerrado imediatamente. |
O programa acima tem um fillmétodo que preenche o array passado para ele com value. Ele não preenche todo o array, apenas a parte especificada pelos índices frome to.
No início do fill método, os valores passados são verificados para garantir que sejam válidos. Se fromfor menor que 0 ou to maior que o comprimento da matriz, o fillmétodo será encerrado imediatamente (executará uma returninstrução).
Esta returndeclaração é útil: praticamente todo método em Java tem um, e aqui está o porquê.
2. Métodos com resultado,void
Lembre-se de que uma vez descobrimos que existem declarações e expressões . Uma expressão, ao contrário de uma declaração, tem um valor que pode ser usado em algum lugar.
E, em Java, os métodos podem ter um valor . E esta é uma notícia muito boa: os métodos não são apenas capazes de fazer algo com base nos parâmetros de entrada, mas também, por exemplo, avaliar algo e retornar o resultado do cálculo .
A propósito, você já encontrou esses métodos:
|
O abs()método retorna um duplo |
|
O nextInt()método retorna umint |
|
O toUpperCase()método retorna umString |
|
O copyOf()método retorna umint[] |
Cada método pode retornar apenas um valor de um tipo predeterminado. O tipo de retorno é determinado quando o método é declarado:
public static Type name(parameters)
{
method body
}
Onde name é o nome do método, parameters é a lista de parâmetros do método e type é o tipo de resultado que o método retorna.
Para métodos que não retornam nada, existe um tipo de espaço reservado especial: void.
Você está escrevendo seu próprio método e não quer retornar nada para o método de chamada? Basta declarar o tipo do método como void, e o problema está resolvido. Também existem muitos métodos como esse em Java.
3. Retornando um resultado
Acabamos de descobrir como declarar um método que retorna o resultado de um cálculo, mas como resultamos esse resultado no próprio método?
A returndeclaração nos ajuda aqui mais uma vez. Passar um resultado de um método se parece com isso:
return value;
Onde returné uma instrução que encerra o método imediatamente. E value é o valor que o método retorna ao método de chamada quando ele sai. O tipo de valuedeve corresponder ao typeespecificado na declaração do método.
Exemplo 1. O método calcula o mínimo de dois números:
|
O método retorna o mínimo de dois números. Se a < bretornar aCaso contrário, retornar b |
Exemplo 2. O método duplica a string passada para ele nvezes:
|
O método recebe dois parâmetros — uma string e o número de vezes que a string deve ser repetida. Uma string vazia é criada para o resultado futuro. Em um loop com timesiterações, um espaço e a strstring são adicionados à resultstring. A string resulté retornada como resultado do método. |
Exemplo 3: O método calcula o máximo de dois números usando o operador ternário:
|
O método retorna o máximo de dois números. retornar (se a > b, então a, caso contrário b) |
GO TO FULL VERSION