Piszę program z kursu Javy od Oracle i wyskakuje mi błąd:
Cannot make a static reference to the non-static method getCard(int, int) from the type Deck
Projekt zawiera 3 pliki/klasy:
klasa Card:
public class Card {
private int rank;
private int suit;
// Kinds of suits
public final static int DIAMONDS = 1;
public final static int CLUBS = 2;
public final static int HEARTS = 3;
public final static int SPADES = 4;
// Kinds of ranks
public final static int ACE = 1;
public final static int DEUCE = 2;
public final static int THREE = 3;
public final static int FOUR = 4;
public final static int FIVE = 5;
public final static int SIX = 6;
public final static int SEVEN = 7;
public final static int EIGHT = 8;
public final static int NINE = 9;
public final static int TEN = 10;
public final static int JACK = 11;
public final static int QUEEN = 12;
public final static int KING = 13;
public Card(int rank, int suit) {
this.suit = suit;
this.rank = rank;
}
public int getSuit() {
return suit;
}
public int getRank() {
return rank;
}
public static String rankToString(int rank) {
switch (rank) {
case ACE:
return "Ace";
case DEUCE:
return "Deuce";
case THREE:
return "Three";
case FOUR:
return "Four";
case FIVE:
return "Five";
case SIX:
return "Six";
case SEVEN:
return "Seven";
case EIGHT:
return "Eight";
case NINE:
return "Nine";
case TEN:
return "Ten";
case JACK:
return "Jack";
case QUEEN:
return "Queen";
case KING:
return "King";
default:
return null;
}
}
public static String suitToString(int suit) {
switch (suit) {
case DIAMONDS:
return "Diamonds";
case CLUBS:
return "Clubs";
case HEARTS:
return "Hearts";
case SPADES:
return "Spades";
default:
return null;
}
}
}
Klasa Deck:
public class Deck {
public static int numSuits = 4;
public static int numRanks = 13;
public static int numCards = numSuits * numRanks;
private Card[][] cards;
public Deck() {
cards = new Card[numSuits][numRanks];
for(int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++ ) {
for(int rank = Card.ACE; rank <= Card.KING; rank++)
cards[suit-1][rank-1] = new Card(suit,rank);
}
}
public Card getCard(int suit, int rank) {
return cards[suit-1][rank-1];
}
}
Klasa DisplayDeck:
class DisplayDeck {
public static void main(String[] args) {
for(int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++) {
for(int rank = Card.ACE; rank <= Card.KING; rank++) {
Card card = Deck.getCard(suit,rank);
}
}
}
}
Bład ukazuje sie w klasie DisplayDeck w momencie:
Card card = Deck.getCard(suit,rank);
Tutaj link do zadania z kursu: http://docs.oracle.com/javase/tutorial/java/javaOO/QandE/creating-questions.html