我正在尝试创建一个程序来创建一副 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]);
}
}
}
最佳答案
方法调用缺少括号:
if((d[j].getName() == ("King")) ...
某些语言(例如 ActionScript)支持添加看起来像属性而不是方法的 getter。在 Java 中,getter 和 setter 没有这种特殊的语法,它们只是普通的方法,并且所有方法都必须仅使用标准方法调用语法 - ()
来访问 - 即使它没有参数。
关于java - 在另一种方法中使用 getter 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935234/