Ich habe gerade ein Programm erstellt, das ein Array von Kartenobjekten erstellt, sie mischt und sie druckt. Aber ich bekomme die folgenden Fehler und als Student habe ich Probleme zu verstehen, warum.Empfangen von Compilerfehlern für eine nicht deklarierte Klasse und dann eine Duplikatklasse
Fehler:
"HW6GetBig.java:23: error: class Card is public, should be declared in a file named Card.java public class Card {"
"HW6GetBig.java:39: error: class DeckOfCards is public, should be declared in a file named DeckOfCards.java public class DeckOfCards {"
"HW6GetBig.java:11: error: cannot find symbol DeckOfCards myDeckofCards = new DeckofCards();"
Wie bisher, ich bin stecken und nicht sicher, warum die Klasse als nicht angemeldete kommen wird. Wenn ich in Netbeans den Dateinamen in Card ändere, bekomme ich immer noch einen Fehler, der besagt, dass eine doppelte Klasse gefunden wurde. Bitte helfen Sie.
Vielen Dank, - Synergy
class HW6GetBig
{
public static void main(String[] args)
{
DeckOfCards myDeckofCards = new DeckofCards();
myDeckofCards.deckShuffler(); // Randomizes/Shuffles the Cards in the Deck, using a Random # and Swaps
// Print 52 Cards in the Order in which they are dealt
for (int i = 0; i < 13; i++) {
// Deal and Print 4 Cards
System.out.printf("%-20s%-20s%-20s%-20s\n",
myDeckofCards.dealCard(), myDeckofCards.dealCard(),
myDeckofCards.dealCard(), myDeckofCards.dealCard());
}
}
}
public class Card {
//Card Class represents a Virtual Playing Card in our Deck
private String rank; // Ranks Of Card
private String suit; // Suit Of Card
// Two Argument Constructor initializes card's face and suit
public Card(String cardRank, String cardSuit) {
rank = cardRank; // Intializing Values of Card's Rank
suit = cardSuit; // Intializing Values of Card's Suit
}
// Return String representing the Card
public String CardToString() {
return rank + " of " + suit;
}
}
public class DeckOfCards {
private Card deck[]; //Declaration of Array of Card Objects
private int topCard; //Card to be Dealt
private final int NUM_CARDS = 52; // Constant # Of Cards in a Standard Deck
int random = (int)(Math.random()*52+1);
public DeckOfCards() {
String ranks[] = {"Ace","Two","Three","Four","Five","Six","Seven",
"Eight","Nine","Ten","Jack","Queen","King"};
String suits[] = {"Spades","Hearts","Clubs","Diamonds"};
deck = new Card[NUM_CARDS]; // Creating an Array of Card Objects
topCard = 0; // Setting Current Card so 1st Card is deck[0]
// Filling the Seats of our Empty Deck Room with Card Objects
for (int i = 0; i < deck.length; i++) {
deck[i] = new Card(ranks[i % 13], suits[i/13]);
// End of Deck Of Cards Constructor
}
}
public void deckShuffler() {
// After Shuffling, The Deck should begin at deck[0] once again
topCard = 0;
// For each Card, pick a "Random Card/#" and Swap.
for(int i = 0; i < deck.length; i++) {
// Obtaining a Random # Between 0 and 51.
int j = random;
// Swapping Currently Selected Card (i) with Random Card (j)
Card tempObject = deck[i];
deck[i] = deck[j];
deck[j] = tempObject;
}
}
public Card dealCard() {
// Ensure the Top Card does not exceed the Deck Length
if (topCard < deck.length) {
return deck[topCard++];
} else {
return null;
}
}
}
Ihnen so vielen Dank! Du hast mir das Problem mit einer klaren Antwort deutlich vor Augen geführt, mein Code funktioniert jetzt. Ich schätze die Hilfe sehr! – Synergy76