如何将课程调用到另一个课程?

时间:2018-01-17 11:25:39

标签: java arrays list

我不知道如何将Card类放入Deck。你能解释我如何解决这个问题吗?

以下是说明:

  

您需要重写构造函数,以便将普通卡片组的所有52张卡分配给卡片阵列。请记住,卡信息需要存储在Deck类中,而不是通过参数传递。此外,您需要为Deck类重新定义toString方法,以便它可以用于以方便的方式显示属性值。确保利用Card类中已存在的toString方法。

     

(你还需要添加一个shuffle方法,它是从构造函数中调用的.shuff方法是Deck类中的一个私有帮助方法。对于这个版本,你需要通过交换卡来洗牌。随机生成两个[0..51]数字范围内的数字代表卡阵列的索引并交换卡片。进行1000次交换,然后显示卡片。使用Math.random生成随机数。)&lt; -This is a部分说明,但我认为在这种情况下并不重要,因为我想知道的是如何将卡类放入甲板。(但我还是把它放在以防万一< / em>的)

public class Lab11bvst
{
public static void main(String[] args)
{ 
  Deck deck = new Deck();
  System.out.println(deck);
}
}

class Deck 
{
private Card[] cards;
private int size;
   private String[ ] suits = {"Clubs","Diamonds","Hearts","Spades"};

public Deck() 
{
  size = 52;
  cards = new Card[size];


   }

 private shuffle(){

 }
}

卡类:

public class Card
{
   private String suit;
   private String rank;
   private int value;

   public Card(String s, String r, int v)
   {
      suit = s;
      rank = r;
      value = v;
   }

   public String getSuit()       { return suit; }
   public String getRank()       { return rank; }
   public int getValue()         { return value; }

   public void setSuit(String s) { suit = s; }
   public void setRank(String r) { rank = r; }
   public void setValue(int v)   { value = v; } 

   public String toString()
   {
      return "[" + suit + ", " + rank + ", " + value + "]";
   }

   public boolean matches(Card otherCard) 
   {
return otherCard.getSuit().equals(this.suit)
&& otherCard.getRank().equals(this.rank)
&& otherCard.getValue() == this.value;
}
}

1 个答案:

答案 0 :(得分:0)

“重写构造函数,以便将普通卡片组的所有52张卡分配给卡片阵列”

现在,构造函数将deck的大小设置为52张卡,然后初始化一个数组以容纳52个元素。您需要通过为通常在卡座中找到的所有52张卡创建卡来填充卡阵列。 Card类的构造函数可以帮助您完成此任务。

例如,您可以首先添加Ace of Diamonds并将其添加到卡片阵列中:

Card aceD = new Card("Diamonds", "Ace", 1);
cards[0] = aceD;

然后将所有52张卡添加到您的卡阵列中。