Pergunta

8 respostas
S

Qual o resultado de compilar e executar o seguinte codigo:

Teste.java

1- public enum Carro {
 2- 	CELTA("2010"), FOX("2006");
 3- 	String ano;
 4- 	Carro(String s) { ano = s; }
 5- }
 6- class Teste{
 7- 	public static void main(String[] args) {
 8- 		System.out.println(Carro.CELTA.FOX.ano);
 9- 	}
10- }

a) 2010
b) 2006
c) Se remover a linha 8 faz o codigo compila e executa.
d) Erro de compilação
e) Erro em tempo de execução[/code]

8 Respostas

B

2006

S

porque ?

B

Simples, um enum alem de ser um membro de uma classe ele tb tem referencias aos seus irmaos…
E um enum é por default static, por isto o não erro de compilação… pois o proposito para qual foi criado é este… constantes, enumerações

Algumas referencias:
http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html#63310

B

Foi mal… era melhor esta aqui…
http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html#16.5

S

Desculpa mas sua resposta está errada.

A resposta correta é a D.

porque ??

O codigo não compila porque o enum está declarado como public, então o nome do meu arquivo precisa ser Carro.java e não Teste.java.
Quando um arquivo possui diversas declarações de classes, somente uma dessas declarações de classe pode ser public e o nome do arquivo precisa ser o mesmo da classe public.

Se remover o public da declaração do enum então será impresso 2006.

Neste exercicio usei esta forma de enum apenas como disfarse, pois é dificil vc ver codigo de enum dessa forma e sua explicação está correta sobre a forma como usei o enum.

B

“sakurai”:
Desculpa mas sua resposta está errada.

A resposta correta é a D.

porque ??

O codigo não compila porque o enum está declarado como public, então o nome do meu arquivo precisa ser Carro.java e não Teste.java.
Quando um arquivo possui diversas declarações de classes, somente uma dessas declarações de classe pode ser public e o nome do arquivo precisa ser o mesmo da classe public.

Se remover o public da declaração do enum então será impresso 2006.

Neste exercicio usei esta forma de enum apenas como disfarse, pois é dificil vc ver codigo de enum dessa forma e sua explicação está correta sobre a forma como usei o enum.

Cara, a declaração de um enum dentro de uma classe pode ser publica, pois ele assume o valor de constantes, ele vira uma classe interna… e asism outras classes pode usa-lo, tem um patther para constantes que fazia o mesmo…

Mas pra tirar a dúvida, joga o codigo no eclipse e vê se não vai rolar…

S

mas neste exemplo a declaração do enum está sendo feita fora da declaração da classe.
Portanto o nome do arquivo precisa ser o mesmo nome do enum.
Qualquer duvida, vai no eclipse cria uma classe Teste.java e joga esse codigo la para ver se funciona.

B

“sakurai”:
mas neste exemplo a declaração do enum está sendo feita fora da declaração da classe.
Portanto o nome do arquivo precisa ser o mesmo nome do enum.
Qualquer duvida, vai no eclipse cria uma classe Teste.java e joga esse codigo la para ver se funciona.

Humm… é vero… esta de ela estar fora da classe eu não tinha notado… :oops:

Criado 1 de agosto de 2006
Ultima resposta 2 de ago. de 2006
Respostas 8
Participantes 2