2014-10-07 71 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

相关问题