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

Ответы

Ответ 1

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

Suit.java:

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

Ответ 2

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

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

Или вы можете импортировать класс Suit из Card и напрямую обращаться к нему:

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

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

Ответ 3

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

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

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

Несвязанный... но вы можете захотеть сделать костюм Spaces в костюм Spades.:)

Ответ 4

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

Card.Suit suit = Card.Suit.CLUBS;