当前位置: 首页 > 面试题库 >

如何编写初始化52个卡对象的构造函数

阎璞瑜
2023-03-14
问题内容

这是我需要做的:

该构造函数使用52个卡对象初始化Deck,该对象表示标准卡座中的52张卡。这些卡片必须从黑桃A到钻石之王订购。

这是我的尝试:

private Card[] cards;
String suit, card;
private final int DECK_SIZE = 52;

public Deck() 
{
    cards = new Card[DECK_SIZE];
    String suit[] = {"spades", "hearts", "clovers", "diamonds"};
    String card[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Joker", "Queen", "King"};
    for (int c = 0; c<13; c++)
        for (int s = 0; s<4; s++)
        {
            cards.equals(new Card(suit, card));

        }



}

这部分给我一个错误:“((新卡(套装,卡));” 说构造函数Card(String [],String
[])是未定义的。我不确定是否允许我们添加额外的构造函数。为我们编写的代码确实包含Card(int,int)。

好吧,那呢?这行得通吗?

public class Deck {

    private Card[] cards;
    int value, suit;
    private final int DECK_SIZE = 52;

    public Deck() 
    {
        //1 = Ace, 11=joker, 12=queen, 13=king
        //1 = spades, 2 = hearts, 3 = clovers, 4 =diamonds
        cards = new Card[DECK_SIZE];
        int suit[] = {1, 2, 3, 4};
        int card[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
        for (int c = 0; c<13; c++)
            for (int s = 0; s<4; s++)
            {
                cards.equals(new Card(suit[s], card[c]));

            }

        }

问题答案:

可能是这样的:

cards = new Card[DECK_SIZE];
String suits[] = {"spades", "hearts", "clovers", "diamonds"};
String cards[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Joker", "Queen", "King"};

int cardIndex = 0;
for (String suit : suits) {
    for (String card : cards) {
        cards[cardIndex] = new Card(suit, card);
        cardIndex++;
    }
}


 类似资料:
  • 映射对构造函数没有限制或要求 (__init__ )类的方法。您可以自由地为您想要的函数要求任何参数,为ORM未知的实例分配属性,并且通常在编写Python类的构造函数时做您通常会做的任何其他事情。 sqlAlchemy ORM不调用 __init__ 从数据库行重新创建对象时。ORM的过程有点类似于Python标准库的 pickle 模块,调用低级 __new__ 方法,然后在实例上悄悄地恢复属

  • 生成类对象时,其成员可以用类的构造函数初始化。构造函数是与类同名的成员函数。程序员提供的构造函数在每次生成类对象(实例化)时自动调用。构造函数可以重载.提供初始化类对象的不同方法。数据成员应在类的构造函数中初始化或在生成对象之后设置其数值。 常见编程错误 6.7 类的数据成员只能在类定义中初始化。 常见编程错误 6.8 试图声明构造函数的返回类型和返回植是个语法错误。 编程技巧 6.5 适当时候(

  • 下面的代码不断抛出以下错误:Java Error Terminal Screen Snapshot 我试过很多在线修复,但似乎都不起作用。下面是我的代码,我已经注释了错误位置(发生在驱动程序主函数中) 注意:如果我将public static void main(String args[])更改为public void main(String args[]),那么代码可以正常编译,但是当我运行它时

  • 问题内容: 在Java中,但是在其他OO语言中,初始化属性定义之间也有区别,例如 并使用构造函数对其进行初始化? 我想不出任何实际的区别,有没有?否则,即使结果相同,是否存在一种方法优于另一种方法的情况? 问题答案: 初始化顺序在这里很重要。 将字段设置为默认初始值(0,false,null) 调用对象的构造函数(但不要执行构造函数的主体) 调用超类的构造函数 使用初始化程序和初始化块初始化字段

  • 我试图从WebClient中替换RestTemplate,因为根据Java文档,RestTemple将被弃用。Spring团队建议尽可能使用WebClient。 之前的RestTempalte代码如下 我想从WebClient替换RestTemplate。所以我实现了类WebClientConnection,如下所示 我使用这个依赖项 Webclient create 上有堆栈溢出错误 如何正确地

  • 问题内容: 我有两个班,第一个是我的主班,第二个是我的编辑框架班。 我的第二个类(UpdateGUI)在其构造函数中提供oldName,并对其进行编辑,当我单击时,它将newName发送给我的第一个类。 我的第二堂课: 我的问题是,为什么newName为null? 更新: UpdateGUIDialog类: 输出: 我需要打印而不是null。 问题答案: Java对象有点像真实对象。并顾名思义:它