【问题标题】:Java: Cannot find symbol? [duplicate]Java:找不到符号? [复制]
【发布时间】:2011-12-25 14:28:22
【问题描述】:

当我尝试编译一个小程序时,我编写了一个构建一副纸牌数组并打印它们的小程序,我收到 6 个错误,所有这些都是“找不到符号”错误。有人可以检查我的代码并找出错误吗?谢谢。

编译输出:

sudhakar@sudhakar-Dell-DXP061 ~/deck $ javac doDeck.java Deck.java Card.java
doDeck.java:7: cannot find symbol
symbol  : variable deck
location: class carddeck.Deck
        System.out.println(mydeck.deck[x].getRankString() + " of " + mydeck.deck[x].getSuitString());
                                 ^
doDeck.java:7: cannot find symbol
symbol  : variable deck
location: class carddeck.Deck
        System.out.println(mydeck.deck[x].getRankString() + " of " + mydeck.deck[x].getSuitString());
                                                                           ^
Deck.java:4: cannot find symbol
symbol  : variable deck
location: class carddeck.Deck
    deck = new Card[51];
    ^
Deck.java:10: cannot find symbol
symbol  : variable deck
location: class carddeck.Deck
            this.deck[cardcount] = new Card(suitit,rankit);
                ^
Deck.java:10: cannot find symbol
symbol  : variable cardcount
location: class carddeck.Deck
            this.deck[cardcount] = new Card(suitit,rankit);
                      ^
Deck.java:11: cannot find symbol
 symbol  : variable cardcount
location: class carddeck.Deck
                    cardcount++;
                    ^
6 errors

Deck.java:

package carddeck;
class Deck {
    public Deck () {
        deck = new Card[51];
        int cardcount = 0;
    }
     public void buildDeck () {
        for (Card.Rank rankit: Card.Rank.values()) {
            for (Card.Suit suitit: Card.Suit.values()) {
                this.deck[cardcount] = new Card(suitit,rankit);
                cardcount++;
            };
        };
    };
}

【问题讨论】:

  • 你没有声明deck成员变量。
  • cardcount 也不是一个字段。

标签: java compilation compiler-errors


【解决方案1】:

您的班级中没有 deck 属性,请尝试这样添加:

class Deck {
    private Card[] deck = null;
    public Deck () {
        deck = new Card[51];
        int cardcount = 0;
    }
//...
}

【讨论】:

  • 谢谢。我不知道你不能在构造函数中初始化变量。
  • 当然你可以在构造函数中初始化变量,但是你必须先声明这些变量。你忘记声明变量了。
【解决方案2】:

你是如何访问卡组的,它没有定义。

class Deck {

Card deck;
int cardcount;
public Deck () {

    deck = new Card[51];
    cardcount = 0;
}

.....

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2016-02-04
    • 2012-10-31
    • 1970-01-01
    相关资源
    最近更新 更多