• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program z kursu Javy od Oracle - błąd

Object Storage Arubacloud
0 głosów
138 wizyt
pytanie zadane 1 września 2015 w Java przez Damianoo4444 Bywalec (2,700 p.)

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

1 odpowiedź

+3 głosów
odpowiedź 1 września 2015 przez Tomasz90 Nałogowiec (25,140 p.)
edycja 1 września 2015 przez Tomasz90
getCard() nie jest metodą statyczną a odwołujesz się do niej tak jakby była. Utwórz obiekt klasy Deck i na jego rzecz wywołaj tą metodę
komentarz 1 września 2015 przez Damianoo4444 Bywalec (2,700 p.)
A jak sie odwołac do niej w inny sposob ?
komentarz 1 września 2015 przez Tomasz90 Nałogowiec (25,140 p.)

Card card = new Deck().getCard(suit,rank);

Podobne pytania

0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 21 sierpnia 2017 w Java przez fipooo Bywalec (2,880 p.)
+5 głosów
4 odpowiedzi 1,436 wizyt
pytanie zadane 16 lipca 2018 w Java przez ManiaQ Nowicjusz (210 p.)
0 głosów
2 odpowiedzi 691 wizyt
pytanie zadane 15 lutego 2018 w Java przez Kondzio Mądrala (5,230 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...