从另一个类中访问枚举

12

我是Java的新手,我正在努力使我的Enum工作。 我在BlueJ中工作,并且有2个类(试图构建纸牌游戏)。 我的第一个类名为Card,其中包含了一个称为Suit的枚举。 另一个类是Deck,我正在尝试从这个类中调用枚举。 我的问题出现在循环中,我已经声明了Suit suit的地方,它无法识别Suit类。

以下是我的代码,如果有人能告诉我做错了什么......将不胜感激。 谢谢!

public class Deck
{

private Bag<Card> cardBag = new Bag<Card>();

public Deck()
{
  for(Suit suit : Suit.values())
     {
         Card card= new Card (suit, 5);
     }
 }
public class Card
{
public enum Suit
{
    H, S, C, D
}

private Suit suit;
private int valueOfCard;

public static final int ACE = 1;
public static final int JACK = 11;
public static final int QUEEN = 12;
public static final int KING = 13;

public Card(int valueOfCard, Suit suit)
{
    this.valueOfCard= valueOfCard;
    this.suit=suit;
}
}

“enum”和“enumeration”不是同一件事情。 - Rohit Jain
请在以后的参考中,在您的问题中包含精确的编译器错误。 - Code-Apprentice
@RohitJain 哦...抱歉,我不知道。如果可以问一下,有什么区别? - Alex G
2
@AlexG.. 这是一个巨大的问题。 enum 只是一种表示枚举常量的类型。 Enumeration 是一个接口(已经过时),用于遍历某些集合。现在已经被 Iterator 取代了。 - Rohit Jain
谢谢您的简要说明。我会自己更详细地研究一下。+1 - Alex G
1个回答

36

这里至少有两种可能的解决方案:

  1. Suit 枚举放在自己的文件中。

  2. 在其他类中使用完全限定名称访问 Suit。即使用 Card.Suit 而不是仅使用 Suit


1
最有帮助的答案 :) 谢谢! - Vandan Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接