Enum, ué?

10 respostas
iwallas

E ai pessoal… primeiro gostaria de saber pq não está funcionando esse código…

import java.util.*;
public class Enums {
	
		public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN JACK, QUEEN, KING, ACE};
		                   
		public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES};
		
		private final Rank rank;
		private final Suit suit;
		
		private Enums(Rank rank, Suit suit){
			this.rank = rank;
			this.suit = suit;
		}
		
		public Rank rank(){	return rank; }
		public Suit suit(){	return suit; }
		
		public String toString()( return rank + " of " + suit; )
			
		private static final List<Enums> protoDeck = new ArrayList<Enums>();
		
		static {
			for (Suit suit : Suit.values())
			for (Rank rank : Rank.values())
			protoDeck.add(new Card(rank, suit));
		}
		
		public static ArrayList<Enums> newDeck() {
			return new ArrayList<Enums>(protoDeck);
		}
}

e qual é a finalidade desse bloco static ali… como q ele é chamado?? como assim static {} não entendi…

10 Respostas

C

1º - Falta uma virgula entre o TEN e o JACK no enum Rank;

2º - Você deve usar {} no método toString ao invés de ();

3º - Falta alguma coisa no seu código, pois a classe Card não está definida;

4º - http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html

iwallas

puts q feio!!! coloquei ( ) caramba… eu to olhando…olhando… faz mó tempo e nao acho o eerro!! ehheehhe!! vlew já ta resolvido! obrigado =)

iwallas

agora… pq dakele static {}, pq ta assim akele bloco?: qual é o sentido???

timotta

Não sei pra que ele serve no contexto do seu negócio, mas bloco estáticos servem para ser executados independente da instanciação de uma classe. Os blocos estáticos são executados assim que a aplicação é iniciada.

iwallas

aaaah! então é como se fosse um construtor? mas que não precisa de instancia… ?

nao eh negócio rsrs eh um exemplo de enums q eu achei por aki…

G

Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez… :wink:

Paulo_Silveira

Guilherme Américo:

Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez… :wink:

para cada classloader.

G

Paulo Silveira:
Guilherme Américo:

Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez… :wink:

para cada classloader.

Hehe :smiley:

iwallas

class o que?? loader? hein…? =/

Deh

sempre que a classe é carregada pela Jvm… faz um teste…
crie alguns intâncias dessa classe, e veja quantas vezes o bloco estático é chamado!

Criado 12 de fevereiro de 2007
Ultima resposta 12 de fev. de 2007
Respostas 10
Participantes 6