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