Использование перечислений в 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;