iwallas
Fevereiro 12, 2007, 3:48pm
#1
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…
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
Fevereiro 12, 2007, 4:04pm
#3
puts q feio!!! coloquei ( ) caramba… eu to olhando…olhando… faz mó tempo e nao acho o eerro!! ehheehhe!! vlew já ta resolvido! obrigado =)
iwallas
Fevereiro 12, 2007, 4:08pm
#4
agora… pq dakele static {}, pq ta assim akele bloco?: qual é o sentido???
timotta
Fevereiro 12, 2007, 4:21pm
#5
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
Fevereiro 12, 2007, 4:23pm
#6
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…
Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez…
[quote=Guilherme Américo]
Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez… [/quote]
para cada classloader.
[quote=Paulo Silveira][quote=Guilherme Américo]
Na realidade um bloco estático é executado quando a classe é carregada pela primeira vez… [/quote]
para cada classloader. [/quote]
Hehe
iwallas
Fevereiro 12, 2007, 6:33pm
#10
class o que?? loader? hein…? =/
Deh
Fevereiro 12, 2007, 6:37pm
#11
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!