Certificação Java SCJP

1 resposta
RDS1
Pessoal estou estudando para tirar Certificação Java e estou com uma duvida nesta questão!!

Given:

10. public class Fabric

11. public enum Color {12. RED(0xff0000), GREEN(0x00ff00), BLUE(0x0000ff);

13. private final int rgb;

14. Color( int rgb) { this.rgb = rgb; }

15. public int getRGB() { return rgb; }

16. };
  1. public static void main( String[] argv) {
  2. // insert code here
  3. }
  4. }

Which two code fragments, inserted independently at line 18, allow the
Fabric class to compile? (Choose two.)

A. Color skyColor = BLUE;

B. Color treeColor = Color.GREEN; ---------   Essa é uma resposta certa !!!

C. Color purple = new Color( 0xff00ff);

D. if( RED.getRGB() < BLUE.getRGB() ) {}

E. Color purple = Color.BLUE + Color.RED;

F. if( Color.RED.ordinal() < Color.BLUE.ordinal() ) {} — e tambem essa só que não entendi o porque essa está certa ???

[color=red] [/color][size=18] [/size] o que é esse  " .ordinal "  não entendi o pq do “If”

Alguem poderia me esclarecer por favor???

*/

1 Resposta

natureza

Na verdade o Ordinal é porque é um enum.

enum Color { RED, GREEN, BLUE }

O Color.RED.ordinal() será : 0
O Color.GREEN.ordinal() será : 1
O Color.BLUE .ordinal() será : 2

No caso do if. Ele não dará nenhum tipo de exceção.

Não fará nada. Mas não dará erro de compilação portanto se colocar na linha 18 compilará sem problemas.

Pegadinha. Vão ter muitas pela prova.

Alguem me corrigi se eu estiver errado.

Criado 21 de junho de 2011
Ultima resposta 21 de jun. de 2011
Respostas 1
Participantes 2