【问题标题】:How do I call a class into another class?如何将一个类调用到另一个类?
【发布时间】:2018-01-17 11:25:39
【问题描述】:

我不明白如何将 Card 类放入 Deck。你能解释一下我该如何解决这个问题吗?

以下是说明:

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

(你还需要添加一个shuffle方法,从构造函数中调用。shuffle方法是Deck类中的私有帮助方法。对于这个版本,你需要通过交换卡片来洗牌。生成两个随机[0..51] 数字范围内的数字,将表示卡片数组的索引并交换卡片。进行 1000 次交换然后显示卡片。使用 Math.random 生成随机数。) 以防万一 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;
}
}

【问题讨论】:

  • “这很紧急——我需要在明天之前把它上交……”——这真的不是我们的错。
  • 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
  • 请注意,JavaScript 和 Java 是天壤之别,除非一个人实际同时使用两者,否则不应同时使用两者来标记问题。我将删除 JS 标记。
  • 我特意对代码进行了引用格式,因为它是家庭作业的一部分——课程由讲师提供。
  • 对不起.. 我没有意识到说这很紧急我会打扰你。我道歉。 @halfer 谢谢你告诉我

标签: java arrays list


【解决方案1】:

"重写构造函数,使普通卡片组的所有 52 张卡片都分配给卡片数组"

现在,构造函数将卡片组的大小设置为 52 张卡片,然后初始化一个数组以容纳 52 个元素。您需要通过为通常在套牌中找到的所有 52 张卡片创建卡片来填充卡片数组。 Card 类的构造函数可以帮助您做到这一点。

例如,您可以先添加一张方块 A 并将其添加到卡片数组中:

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

然后将所有 52 张卡片添加到您的卡片数组中。

【讨论】:

  • 我不确定这是否回答了您“如何将 Card 类放入 Deck”的问题,但我希望它有所帮助! --另外,上面提到的halfer方式效率更高,但我只是想确保你知道如何在另一个类中使用一个类
猜你喜欢
  • 2015-01-19
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多