在Java中创建一个对象数组的实例

sin*_*tor 2 java arrays initialization class instance

我是Java的新手,当我尝试创建DeckofCards类的实例时,我的main函数出现错误.DeckofCards类应该是"卡片"对象的私有数组.我认为我的问题出现在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
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的DeckofCards类:

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++;

    }
}
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我,我是否缺少一些语法或某些东西会很棒!谢谢.

Ted*_*opp 5

你需要调用构造函数:

DeckofCards myDeck = new DeckofCards(); // note parens!
Run Code Online (Sandbox Code Playgroud)

在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++;
Run Code Online (Sandbox Code Playgroud)