在多个类中使用Java中的枚举

时间:2011-01-08 16:45:47

标签: java class enums

我有以下课程:

public class Card 
{
    public enum Suit 
    {
        SPACES, HEARTS, DIAMONDS, CLUBS
    };

    public Card(Suit nsuit, int nrank)
    {
        suit = nsuit;
        rank = nrank;
    }

    private Suit suit;
    private int rank;
}

我想在另一个类中实例化它,但该类不理解Suit枚举。我应该把枚举放在哪里公开显示?

4 个答案:

答案 0 :(得分:29)

Suit枚举位于Card类中,您必须以这种方式访问​​它:

new Card(Card.Suit.SPADES, 1);

或者,您可以从Card中导入Suit类,并直接访问它:

import my.package.Card.Suit;
new Card(Suit.SPADES, 1);

另一种选择是按照伯特的建议将西服放入自己的班级。

答案 1 :(得分:21)

将西装放在自己的班级中:

Suit.java:

public enum Suit 
{
    SPACES, HEARTS, DIAMONDS, CLUBS
}

答案 2 :(得分:6)

枚举已经可见。

Card card = new Card(Card.Suit.CLUBS, 5);

将实例化一张新卡片。

无关......但你可能想让太空服套装成黑桃套装。 :)

答案 3 :(得分:-4)

Suit枚举位于Card类中,您必须以这种方式访问​​它:

Card.Suit suit = Card.Suit.CLUBS;