Java 找不到包类的符号/变量,解决方案?

Java 找不到包类的符号/变量,解决方案?,java,arrays,oop,shuffle,Java,Arrays,Oop,Shuffle,这可能是一件非常简单的事情,它会让我非常恼火,但令人钦佩的是,我被卡住了 我即将完成一项作业,但由于系统无法在这个类(称为Pack类)中找到任何符号,我正陷入死胡同。我有一个单独的类叫做PlayingCard类,这个类非常完整,但是我现在需要这个类和一个单独的测试人员来完成作业 这是代码,然后我会解释我想用它做什么 import java.util.Random; public class Pack { PlayingCard[] cards = new PlayingCard[52];

这可能是一件非常简单的事情,它会让我非常恼火,但令人钦佩的是,我被卡住了

我即将完成一项作业,但由于系统无法在这个类(称为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()
{

}
}


在上述代码中,它们将依次表示为1、2、3

编辑2: 代码顶部的PlayingCard可能是一个构造函数(我正在使用为赋值指定的模板来设置代码),请参见新链接

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;
        }
    }
}
公共类包
{
玩牌[]张牌;
公共包()
{
this.cards=新游戏卡[52];
//设置阵列
字符串[]套装={“黑桃”、“梅花”、“红心”、“钻石”};
字符串[]排名={“二”、“三”、“四”、“五”、“六”、“七”,
“八”、“九”、“十”、“杰克”、“女王”、“国王”、“王牌”};
//初始化阵列
包()
{    
对于(int i=0;i

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

我猜这些是错误:

错误3:PlayingCard是类而不是数组。cards是数组,请更改

/*change this PlayingCard[i] = i */  
/*to*/ cards[i] = i;
错误2:长度不是一个函数,而是一个变量

/*change this PlayingCard.length(); */  
    /*to*/ cards.length;
再次从纸牌中获取长度(你的阵列称为纸牌,而不是玩纸牌)

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

}
}
import java.util.Random;
公共类包
{
PlayingCard[]卡片=新的PlayingCard[52];
公共包()
{
//设置阵列
字符串[]套装={“黑桃”、“梅花”、“红心”、“钻石”};
字符串[]排名={“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“杰克”、“女王”、“国王”、“王牌”};
//初始化阵列
对于(int i=0;i

PS:您的代码中有几个问题。我建议您遵循这里的一些教程,以便更好地理解语言基础。

如果PlayingCard是一个类型名称,您不能在其上使用索引:
PlayingCard[I]
。洗牌数组
PlayingCards[]卡片
,即一副卡片,不是通过给扑克牌分配随机整数来完成的,这是不允许的,因为扑克牌是扑克牌,整数是整数。当你询问编译错误时,一定要发布准确完整的错误消息,并告诉它指的是哪一行代码。@laune我可能在看l艾克是个白痴,但我不认为我懂,你是说我不能真正使用
PlayingCard[]卡片
,是否需要设置不同的数组?此外,PlayingCard实际上是同一个包中某个类的名称。我会发现错误消息挂起。我已经做了更改,但现在我遇到了一个问题,即卡片无法将int转换为PlayingCard。这可能与PlayingCard类有关如果你想让我添加它,或者我在Pack类中缺少了什么?@SIHB007在你的问题之后看到我的第二条评论。你试图在
卡[I]
上加一个int(eger)值,即
播放卡
。这些类型不兼容,因此会出现错误(如果你在现实生活中这样做,它被称为“标记卡”),你会遇到一些事情,这取决于你所在的公司)@laune我可以理解,但它并没有确切解释我如何解决这个问题。我已经将PlayingCard更改为int,这样卡就可以工作了,但PlayingCard在模板中有明确的说明。是否仍然可以使用PlayingCard和int?就像某种后门一样?
/*change this PlayingCard[i] = i */  
/*to*/ cards[i] = i;
/*change this PlayingCard.length(); */  
    /*to*/ cards.length;
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()
{

}
}