the - Usando enums en Java a través de múltiples clases
enum kotlin android (4)
Tengo la siguiente clase:
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;
}
Quiero crear una instancia en otra clase, pero esa clase no entiende la enumeración de Suit
. ¿Dónde debo colocar la enumeración para que sea públicamente visible?
La enumeración de Suit
está dentro de la clase de Card
, y debes acceder a ella de esa manera:
Card.Suit suit = Card.Suit.CLUBS;
La enumeración de Suit está dentro de la clase de Cartas, y debes acceder a ella de esa manera:
new Card(Card.Suit.SPADES, 1);
O bien, puede importar la clase de Traje desde dentro de la Tarjeta, y acceder a ella directamente:
import my.package.Card.Suit;
new Card(Suit.SPADES, 1);
La otra opción es poner Suit en su propia clase, como lo sugiere Bert.
La enumeración ya es visible.
Card card = new Card(Card.Suit.CLUBS, 5);
instanciar una nueva tarjeta.
No relacionado ... pero es posible que desees convertir el traje de Spaces en el traje de Spades. :)
Poner traje en su propia clase:
Suit.java:
public enum Suit
{
SPACES, HEARTS, DIAMONDS, CLUBS
}