在另一种方法中使用getter是行不通的?

时间:2013-09-21 17:01:43

标签: java compiler-construction symbols getter

我正在尝试创建一个程序,创建一副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]);
  }
 }
} 

1 个答案:

答案 0 :(得分:2)

您缺少方法调用的括号:

if((d[j].getName() == ("King")) ...

某些语言(例如ActionScript)支持添加看起来像属性的getter而不是方法。在Java中,getter和setter没有这样的特殊语法,它们只是常规方法,所有方法只能使用标准方法调用语法访问 - () - 即使它没有参数。