DEV Community

Retorno de métodos

Retornando de um método

  • Existem duas condições que fazem um método retornar:
    Quando a chave de fechamento do método é alcançada.
    Quando uma instrução return é executada.

  • Existem duas formas de return:
    Uma para métodos void (métodos que não retornam valor).
    Outra para o retorno de valores.

  • Para métodos void, a instrução return é usada da seguinte forma:
    return;

  • Quando essa instrução é executada, o controle do programa volta para o chamador, saltando qualquer código restante no método.

  • Exemplo de método com return em um laço for:

Image description

  • O laço for será executado de 0 a 5, pois quando i for igual a 5, o método retornará.

  • Um método pode ter várias instruções return para diferentes saídas.

  • Exemplo:

Image description

  • Nesse caso, o método retorna ao terminar ou se um erro ocorrer.

  • Evite muitos pontos de saída em um método, pois podem desestruturar o código.

  • Um método bem projetado tem pontos de saída bem definidos.

  • Resumindo: um método void pode retornar de duas maneiras:
    Alcançando a chave de fechamento.
    Executando uma instrução return.

Retornando um valor

  • A maioria dos métodos retorna um valor, mesmo que alguns tenham tipo de retorno void.

  • Retornar valores é um dos recursos mais úteis dos métodos.

  • Exemplo de valor de retorno: a função sqrt() que retorna a raiz quadrada.

  • Valores de retorno têm várias finalidades:
    Resultado de um cálculo (ex: sqrt()).
    Indicação de sucesso ou falha.
    Contém um código de status.

  • O uso de valores de retorno é parte integrante da programação Java.

  • Métodos retornam valores usando a instrução return valor;, onde valor é o valor retornado.

  • Essa forma de return é usada apenas em métodos que não têm tipo de retorno void.

  • Métodos não void devem retornar um valor usando return valor;.

  • Melhorar a implementação de range():
    Em vez de exibir a autonomia, range() deve calcular e retornar o valor.
    Vantagem: o valor retornado pode ser usado em outros cálculos.

  • Exemplo modificado de range() para retornar a autonomia em vez de exibi-la.

Image description
Image description

Saída:
Minivan can carry 7 with range of 336 Miles
Sportscar can carry 2 with range of 168 miles

  • Quando range() é chamado, ele é inserido no lado direito de uma instrução de atribuição.

  • A variável à esquerda recebe o valor retornado por range().

  • Após range1 = minivan.range();, a autonomia de minivan será armazenada em range1.

  • O método range() agora tem tipo de retorno int, retornando um valor inteiro para o chamador.

  • O tipo de retorno de um método é importante e deve ser compatível com o tipo de dado retornado.

  • Se um método deve retornar um tipo double, seu tipo de retorno deve ser double.

  • O programa pode ser mais eficiente sem usar variáveis intermediárias range1 ou range2.

  • A chamada a range() pode ser usada diretamente na instrução println().

  • Exemplo: System.out.println("Minivan can carry " + minivan.passengers + " with range of " + minivan.range() + " Miles");

  • Nesse caso, minivan.range() é chamado automaticamente dentro de println().

  • Chamadas a range() podem ser usadas sempre que a autonomia de um objeto Vehicle for necessária.

  • Exemplo:
    if(v1.range() > v2.range())
    System.out.println("v1 has greater range");

Top comments (0)