2013-02-09 10 views
6

Ich bin neu in Java und ich kämpfe um meine Enumeration zu arbeiten. Ich arbeite in BlueJ und habe 2 Klassen (versuche ein Solitaire zu bauen). Meine erste Klasse heißt Karte und innerhalb dieser Klasse habe ich eine Aufzählung namens Suit. Meine andere Klasse ist Deck und ich versuche, die Enumeration von dieser Klasse aufzurufen. Mein Problem ist in der For-Schleife für Deck, wo ich Suit-Anzug erklärt habe. Es erkennt die Klasse Suit nicht.Access Enum von einer anderen Klasse

Mein Code ist unten, wenn jemand sagen kann, was ich falsch mache ... würde es sehr geschätzt werden. Vielen Dank!

public class Deck 
{ 

private Bag<Card> cardBag = new Bag<Card>(); 

public Deck() 
{ 
    for(Suit suit : Suit.values()) 
    { 
     Card card= new Card (suit, 5); 
    } 
} 

//

public class Card 
{ 
public enum Suit 
{ 
    H, S, C, D 
} 

private Suit suit; 
private int valueOfCard; 

public static final int ACE = 1; 
public static final int JACK = 11; 
public static final int QUEEN = 12; 
public static final int KING = 13; 

public Card(int valueOfCard, Suit suit) 
{ 
    this.valueOfCard= valueOfCard; 
    this.suit=suit; 
} 
} 
+0

'enum' und' enumeration' sind nicht dasselbe. –

+0

Für zukünftige Referenz, bitte fügen Sie den genauen Compilerfehler in Ihre Frage ein. –

+0

@RohitJain Oh ... Entschuldigung, ich wusste es nicht. Was ist der Unterschied, wenn ich fragen darf? –

Antwort

24

Es gibt mindestens zwei mögliche Lösungen hier:

  1. Legen Sie die Suit Aufzählung in einer eigenen Datei.

  2. Zugriff auf Suit mit seinem vollständig qualifizierten Namen in anderen Klassen. Verwenden Sie Card.Suit statt nur Suit.

+0

Arbeitete perfekt. Willl in 7 Minuten annehmen :) Danke! –

+1

Die hilfreichste Antwort :) Danke! –

Verwandte Themen