9.5. Funções cujo resultado é um array

Podemos ter métodos que criam um array e o devolvem como resultado, ou seja, funções cujo retorno é de tipo array.

Vamos ilustrar esta situação com um método que cria e devolve um array de inteiros aleatórios entre zero e um dado valor.

Precisamos que quem invoque o método defina o número de elementos que o array deverá ter, além do valor máximo para os aleatórios, por isso o método terá dois parâmetros do tipo int.

O seguinte programa invoca o método acima para obter um array de 7 números aleatórios no intervalo [0,10] e de seguida imprime os seus valores no standard output:

Imagine o estado da memória no momento em que o método termina a sua execução e vai retornar o resultado. Como o valor a retornar é do tipo array, o que é retornado é uma referência ao array que foi criado no método:

Esse valor é de seguida atribuído à variável aleatórios, que é local ao main. De seguida essa variável é usada no ciclo que escreve no ecrã os vários elementos do array.

 

Se quiséssemos que o método usasse um gerador de aleatórios específico, em vez de criar um de cada vez que é executado, bastaria acrescentar um terceiro parâmetro, do tipo Random.

 

Repare na diferença, em relação ao programa anterior, do estado da memória no momento em que o método termina a sua execução e vai retornar o resultado: a instância de java.util.Random que é usada no método é a mesma que foi criada no main, cuja referência foi guardada na variável meuGerador, local ao main; esta referência foi depois copiada para o parâmetro gerador do método vetorDeAleatorios, ficando o objeto a ser referenciado por essas duas variáveis.

 


 

Anterior: 9.4. Copiar arrays

Seguinte: 9.6. Métodos com parâmetros do tipo array