我正在尝试创建一个程序,创建一副52张牌。当我尝试编译代码时,它一直说“无法在createDeck方法中的所有getName getter上找到符号。我是Java编程的新手,所以我不知道该怎么做。任何建议都是这是代码:
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]);
}
}
}
答案 0 :(得分:2)
您缺少方法调用的括号:
if((d[j].getName() == ("King")) ...
某些语言(例如ActionScript)支持添加看起来像属性的getter而不是方法。在Java中,getter和setter没有这样的特殊语法,它们只是常规方法,所有方法只能使用标准方法调用语法访问 - ()
- 即使它没有参数。