无法找到Pack类的符号/变量,解决方案?

时间:2015-02-21 20:08:52

标签: java arrays oop shuffle

这可能是非常简单的事情,它会让我完全烦恼,但我确实被困住了。

我即将完成一项任务,但由于系统无法在此课程中找到任何符号,因此我称之为Pack类。我有一个名为PlayingCard类的单独类,它非常完整,但我现在需要这个类和一个单独的测试人员来完成作业。

这是代码,然后我将解释我想用它做什么。

import java.util.Random;

public class Pack 
{
PlayingCard[] cards = new PlayingCard[52];

public Pack()
{
    // Setting up array
    String[] suits = {"SPADES", "CLUBS", "HEARTS", "DIAMONDS"};
    String[] ranks = {"TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING", "ACE"};

    // Intialising array
    Pack()   // Error 1
    {    
        for (int i = 0; i < PlayingCard.length(); i++)  // Error 2
        {
            PlayingCard[i] = i;  // Error 3
        }
    }
}

public void shuffle()
{
    for (int i = 0; i < 52; i++)
    {
        Random random = new Random();
        int rand = random.nextInt(50)+1;
        PlayingCard[i] = rand;   // Error 3
    }
}

@Override
public String toString()
{

}
}

这非常像纸牌游戏类。我有一个名为Pack的方法,我需要在其中构建一组52张卡片,按不同的套装和等级排序。洗牌类是显而易见的,它需要能够洗牌建造的牌组。我已经为扑克牌制作了一套阵列。虽然PlayingCard[] cards = new PlayingCard[52]已专门插入到模板中以进行分配。

现在,问题是NetBeans系统无法找到Pack,PlayingCard和length()的符号,即使PlayingCard是同一个包中的单独类的一部分,而Pack已经是该类的一部分。

那么,我在这里出错了什么?

编辑: 我得到的错误是这样的:

cannot find symbol
symbol: method Pack()
location: class Pack

; expected

cannot find symbol
symbol: method length()
location: class PlayingCard()

cannot find symbol
location: variable PlayingCard
location: class Pack

这些将按顺序在上面的代码中表示为1,2,3。

编辑2: 代码顶部的PlayCard可能是构造函数(我使用为分配设置代码的模板),请参阅新链接。

public class Pack 
{
PlayingCard[] cards;

public Pack()
{
    this.cards = new PlayingCard[52];
    // Setting up array
    String[] suits = {"SPADES", "CLUBS", "HEARTS", "DIAMONDS"};
    String[] ranks = {"TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", 
        "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING", "ACE"};

    // Intialising array
    Pack()
    {    
        for (int i = 0; i < PlayingCard.length(); i++)
        {
            PlayingCard[i] = i;
        }
    }
}

我仍然在第一段代码中显示错误。

1 个答案:

答案 0 :(得分:0)

我猜这些是错误:

错误3:PlayingCard类不是数组。卡是数组,更改

/*change this PlayingCard[i] = i */  
/*to*/ cards[i] = i;

错误2:长度不是函数,而是变量。

/*change this PlayingCard.length(); */  
    /*to*/ cards.length;

再次从卡片中获取长度(您的阵列称为卡片,而不是PlayCard)

错误1:为什么函数内部有函数?你想在这做什么?

试试这段代码: -

import java.util.Random;

public class Pack 
{
PlayingCard[] cards = new PlayingCard[52];

public Pack()
{
    // Setting up array
    String[] suits = {"SPADES", "CLUBS", "HEARTS", "DIAMONDS"};
    String[] ranks = {"TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING", "ACE"};

    // Intialising array

        for (int i = 0; i < cards.length; i++) 
        {
            cards[i] = i;
        }   
}

public void shuffle()
{
    for (int i = 0; i < 52; i++)
    {
        Random random = new Random();
        int rand = random.nextInt(50)+1;
        cards[i] = rand;   // Error 3
    }
}

@Override
public String toString()
{

}
}

PS:您的代码中存在多个问题。我建议你按照这里的一些教程 - http://codingbat.com/来理解语言基础知识。