我正在嘗試創建一個程序來創建52張卡片。當我嘗試編譯代碼時,它總是說「在createDeck方法中找不到所有getName getter的符號。我是Java編程的新手,所以我不知道該怎麼做。 。有用下面的代碼:在另一種方法中使用getters將不起作用?
public class Card {
private int value;
private String name;
private String suit;
public void setValue(int v){
value = v;
}
public int getValue(){
return value;
}
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public void setSuit(String s){
suit = s;
}
public String getSuit(){
return suit;
}
}
該類應該創建一個平臺:
public class cardDeck {
int[] values = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
String[] names = {"Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "King", "Queen", "Jack", "Ace",};
String[] suits = {"Clubs", "Spades", "Hearts", "Diamonds"};
public Card[] createDeck (Card[] d){
for(int j:deck){
d[j] = new Card();
for(String k:names){
d[j].setName(k);
}
for(int i:values){
if((d[j].getName == ("King")) || (d[j].getName == ("Queen")) || (d[j].getName == ("Jack"))){
d[j].setValue(10);
}else if(d[j].getName == ("Ace")){
d[j].setValue(11);
}else{
d[j].setValue(i);
}
}
for(String l:suits){
d[j].setSuit(l);
}
}
return d;
}
}
下面是測試類:
方法調用class CardTest {
public static void main(String[] args){
Card[] deck = new Card[52];
cardDeck playingCards = new cardDeck();
playingCards.createDeck(deck);
for(int q = 0; q < 52; q++){
System.out.println(deck[q]);
}
}
}
不要使用'=='比較'String'(或者通常的任何一種'Object')。既然它是一個Object,你應該使用'String'中的'equals'方法。 – Julien