2014-10-07 77 views
0

不知道如何解決這個錯誤,我評論了代碼中的錯誤,對於Java來說很新穎。我正嘗試將我的卡片發送到我的構造函數中,並創建一個卡組數組。不兼容型卡無法轉換爲字符串

public abstract class CardGame { 
    protected String[] deck = new String[52]; 
    private String[] Suit = {"Spade","Dimond","Heart","Club"}; 
    private String[] Card = {"2","3","4","5","6","7","8","9","10","jack","queen","king","ace"}; 

public CardGame(){ 
    int c = 0; 
    for (int x=0; x < Suit.length; ++x){ 
     for (int i = 0; i < Card.length; ++i){ 
      deck[c] = new Card(Suit[x], Card[i]); // heres the error 
      c++; 
     } 

    } 

} 

} 

public class Card { 
    String suit; 
    String name; 

public Card(String s,String n){ 
    suit = s; 
    name = n; 
} 

public String getsuit(){ 
    return suit; 
} 

public String getname(){ 
    return name; 
} 

} 

回答

4

這裏的問題:

protected String[] deck = new String[52]; 

你代表你的卡爲String類型,當你可能想,如果你打算插入卡插入該甲板有型卡的數組的數組。

爲了您的問題行的工作:

deck[c] = new Card(Suit[x], Card[i]); 

你需要申報的甲板像這樣:

protected Card[] deck = new Card[52]; 
+0

TYVM奏效,所以即時通訊與保護卡[] =甲板新卡猜測[52];我創建了一個卡數據類型數組? oop很混亂。 – user3538292 2014-10-07 02:40:07

+1

@ user3538292將您的數據結構(您的數組)看作只適合特定類型對象的容器,就像一個蛋盒只能包含雞蛋一樣,或者一個保齡球包只能包含保齡球。保齡球不屬於蛋殼,也不屬於蛋殼。當你聲明一個數據結構時,你也告訴Java編譯器它內部屬於什麼類型的東西(特定類的典型對象或從該類繼承的對象)。你編寫得越多,你越習慣這個想法。請記住:每件事都有特定的地方。 – MarsAtomic 2014-10-07 18:54:11

相關問題