quarta-feira, 4 de agosto de 2010

Questão 10 - ENUM

De acordo com o código abaixo:
21. public class Ball {
22.  public enum Color { RED, GREEN, BLUE };
23.   public void foo() {
24.     // insert code here
25.     { System.out.println(c); }
26.   }
27. }


Que código inserido na linha 24 causa ao método “foo” imprimir RED, GREEN e BLUE?
A. for(Color c : Color.values())
B. for(Color c = RED; c <= BLUE; c++)
C. for(Color c; c.hasNext() ; c.next())
D. for(Color c = Color[0]; c <= Color[2]; c++)
E. for(Color c = Color.RED; c <= Color.BLUE; c++) 


Operadores de incremento e comparação não podem ser aplicados a tipos de enumeração, o que inviabiliza a execução dos códigos presentes nas alternativas B, D e E. A opção C está incorreta já que em um enum não há implementação dos métodos hasNext() e next(). E ainda, os elementos de um enum não podem ser acessados por índices, mas sim pela notação “.” (dot notation). Concluindo, apenas a opção A possui uma codificação correta usando uma alternativa criada desde a versão 1.5 da linguagem para acesso a todos os elementos de uma coleção ou enumeração.
Alternativa correta: A.

Nenhum comentário:

Postar um comentário