java - 在 Java 中创建对象类数组的实例

标签 java arrays class initialization instance

我是 Java 新手,当我尝试创建 DeckofCards 类的实例时,我的 main 函数中出现错误。 DeckofCards 类应该是“Cards”对象的私有(private)数组。我认为我的问题是 DeckofCards 类中的某些内容,出于某种原因它不是我认为的数组?也许我创建错了?

我的主要错误是 '(' 或 '[' 预期需要数组,但已找到 DeckofCards

这是我的主要功能:

public static void main(String[] args) {

        Card myCard = new Card(13,1);
        System.out.println(myCard.getSuit());
        System.out.println(myCard);
        DeckofCards myDeck = new DeckofCards;  //error here
        for(int i=0; i<53; i++) {
            System.out.println(myDeck[i]); //second error here
        }
    }

这是我的 DeckofCards 类(class):

public class DeckofCards {

    private Card[] deck = new Card[52];

    public DeckofCards(){
        int i = 0;

            for(int s = 1; s<5; s++){
                for(int r = 1; r<14; r++){
            deck[i].rank = r;
            deck[i].suit = s;
            i++;

    }
}
    }
}

如果有人能告诉我是否缺少一些语法或其他东西,那就太好了!谢谢。

最佳答案

您需要调用构造函数:

DeckofCards myDeck = new DeckofCards(); // note parens!

在 Java 中,括号是必需的。

在构造函数中,您还需要将数组的每个元素初始化为新的 Card 对象:

for(int s = 1; s<5; s++){
    for(int r = 1; r<14; r++){
        deck[i] = new Card();
        deck[i].rank = r;
        deck[i].suit = s;
        i++;

关于java - 在 Java 中创建对象类数组的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188454/

相关文章:

arrays - 基于字符串数组对自定义数组进行排序

arrays - 在 Rebol3 中用数组自己的索引填充数组的有效方法

c++ - 在 C++ 中制作一个只有可变属性的类是不好的做法吗?

java - 如果 getDeclaredMethod 就足够了,为什么我要使用 java 代理

32 位 jvm 上的 Java 程序比 64 位慢

c - 定义大小的char数组指针

java - 如何将上下文从 MainActivity 传递到 Android 中的另一个类?

Java:如何在静态方法中创建对象并调用另一个类的方法?

java - 查看实际的 Maven 调用

java - 如何制作等距碰撞箱?