lucianodacunha.net

terça-feira, 7 de fevereiro de 2012

Declarando métodos com var-args

Um dos recursos implementados a partir do Java 5.0 foi o var-args.

Com ele é possível efetuar a passagem de argumentos para métodos através de uma lista declarada diretamente na chamada do método.

Existem algumas regras para utilizar esse recurso, que são elas:
  • Na declaração dos parâmetros, é necessário declarar o tipo da lista de argumentos, podendo ser esta de tipos primitivos ou objetos;
  • Na chamado do método que utiliza como parâmetro var-args, deve fornecer os argumentos separados por virgulas;
  • Além da lista, seu método poderá receber outros argumentos, desde que estes sejam declarados antes do var-args.
Observe o código na sequência:

/**
 * Nome do arquivo: VarArgs.java
 */

/**
 * Quer saber pq essa classe não tem o mesmo nome do arquivo?
 *
 * @see Criando arquivos Java padronizados
 */
class VarArgs1{

 /**
  * Observe a forma declarada como parâmetro
  */
 static void exibeArgumentos(int... args){

  for(int i : args)
   System.out.println(i);

 }

 public static void main(String[] args){

  /**
   * Observe a forma declarada como lista
   */
  exibeArgumentos(1, 2, 41, 100);

 }

}

Olhando a chamada do método exibeArgumentos() em main (Classe VarArgs1), a principio pode-se pensar que este método declara 4 variáveis int como parâmetro. Mas quando observamos o método, verificamos que não é bem assim.

A sintaxe usada no exibeArgumentos() é a forma de declarar que este método receberá uma lista de argumentos do tipo int.

A partir daí, para utilizar esses valores, poderemos tratá-los como se um array de inteiros, sendo que para acessar seus elementos um simples for resolverá.

Na sequência outro exemplo demonstrando um segunda forma de utilização do var-args (Classe VarArgs2).

class VarArgs2{

 /**
  * Aqui, colocamos outro parâmetro na interface do método.
  * Sem problemas, desde o var-args seja sempre o último!
  */
 static void exibeArgumentos(String mensagem, int... valores){

  System.out.println(mensagem);

  for(int i : valores)
   System.out.println(i);

 }

 public static void main(String[] args){

  /**
   * Note que com outros argumentos a chamada do método não muda.
   * É só respeitarmos a ordem declarada na interface do método.
   */
  exibeArgumentos("Exibindo uma lista de inteiros", 1, 2, 41, 100);

 }

}

Parâmetros e/ou argumentos

Talvez tenha notado o uso dos termos parâmetros e variáveis no texto.

Sim, foi intencional. De modo geral, algumas pessoas referem-se a ele como sendo a mesma coisa, mas não são exatamente.

Argumentos são as declarações entre os parenteses quando estamos invocando um método. Ou seja, os valores que estamos passando para o método, e que serão utilizados na tarefa realizada pelo método invocado. Exemplo:

/** Método setSalario() sendo invocado com um valor double passado como argumento */
setSalario(5000.0);

Parâmetros são as declarações entre os parenteses da interface do método. São os valores que o método precisará receber para realizar sua tarefa. Exemplo:

/** Método main declara um array de String como parâmetro */
public static void main(String[] args){};

É isso, []'s.

Marcadores:

0 Comentários:

Postar um comentário

Assinar Postar comentários [Atom]



<$I18N$LinksToThisPost>:

Criar um link

<< Página inicial