DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1

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");

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more