1
import java.util.ArrayList;
public class Deck{
final private int CARD_SET = 52;
final private int NUM_FACE = 13;
final private int NUM_SUITE = 4;
private ArrayList<Card> cardSet = new ArrayList<>(52);
private Card card = new Card();
public Deck(){
for(int i = 0; i < CARD_SET; i++){
if(i >= 0 && i < NUM_FACE) {
card.setSuite("club");
card.setFace(i + 1);
}else if(i >= NUM_FACE && i < NUM_FACE*2){
card.setSuite("diamond");
card.setFace(i + 1 - NUM_FACE);
}else if(i >= NUM_FACE*2 && i < NUM_FACE*3){
card.setSuite("heart");
card.setFace(i + 1 -(NUM_FACE*2));
}else if(i >= NUM_FACE*3 && i < NUM_FACE*4){
card.setSuite("spade");
card.setFace(i + 1 - (NUM_FACE*3));
}
cardSet.add(card);
}
}
public void printDeck(){
for(Card card : cardSet){
System.out.println(card.getFace());
System.out.println(card.getSuite());
}
}
}
當我調用「printDeck()」時,它顯示ArrayList中的所有13個黑桃。 我不明白爲什麼這些代碼無法成爲一個套牌。 您的幫助將延長我的壽命。在java中製作卡片組類
因爲您沒有創建新的'Card'實例,所以您在每次迭代時修改相同的一個。在'for'循環中移動'Card card = new Card()' – BackSlash
您應該爲每次迭代創建一個新的'Card'實例,而不是整個班級的一個實例。 – Henrik
在for循環中重新定位卡片實例是解決這個問題的唯一方法嗎? –