无法为 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/ 以很好地理解语言基础知识。
这可能是一件非常简单的事情,它会让我非常恼火,但不可否认我被卡住了。
我即将完成一项任务,但由于系统无法在此 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/ 以很好地理解语言基础知识。