无法为 Pack class 找到 symbols/variables,解决方案?

Cannot find symbols/variables for Pack class, solution?

这可能是一件非常简单的事情,它会让我非常恼火,但不可否认我被卡住了。

我即将完成一项任务,但由于系统无法在此 class 中找到任何符号,我陷入了死胡同,称为包 class。我确实有一个名为 PlayingCard class 的单独 class,它非常完整,但我现在需要这个 class 和一个单独的测试器来完成任务。

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

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()
{

}
}

这很像纸牌游戏class。我有一个称为 Pack 的方法,我需要在其中构建一个 52 张牌的 Pack,这些牌按不同的花色和等级排序。洗牌 class 很明显,它需要能够洗牌。我已经为扑克牌制作了一组数组。尽管 PlayingCard[] cards = new PlayingCard[52] 被专门插入到作业模板中。

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

的一部分

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

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

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: 代码顶部的 PlayingCard 可能是一个构造函数(我正在使用为作业提供的模板来设置代码),请参阅新 link.

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;
        }
    }
}

我仍然收到第一段代码中显示的错误。

我猜这些是错误:

错误 3:PlayingCard class 不是数组。 cards 是数组,更改

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

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

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

再次从卡片中获取长度(您的数组称为卡片,而不是 PlayingCard)

Error1:为什么函数中有函数?你想在这里做什么?

试试这个代码:-

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/ 以很好地理解语言基础知识。