Использование перечислений в Java для нескольких классов

У меня есть следующий класс:

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 ENUM. Где я должен поместить enum, чтобы сделать его публично видимым?

4 ответа

Решение

Поместите костюм в своем классе:

Suit.java:

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

Перечень Suit находится внутри класса Card, и вы должны получить к нему доступ таким образом:

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

Или вы можете импортировать класс Suit из Карты и получить к нему прямой доступ:

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

Другой вариант - поместить Suit в свой собственный класс, как предлагает Берт.

Перечисление уже видно.

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

создаст новую карту

Не имеет отношения... но вы можете захотеть превратить костюм Spaces в костюм Spades.:)

Suit enum находится внутри Card класс, и вы должны получить к нему доступ таким образом:

Card.Suit suit = Card.Suit.CLUBS;
Другие вопросы по тегам