首页 > 解决方案 > 用另一个类中产生的元素填充 Java 数组

问题描述

我正在尝试用我的“卡片”类中创建的卡片填充我的“卡片”类中的一副卡片。当我在 Deck 类中打印结果时,我得到 52 个“null”,这告诉我两者正在通信,只是不是很好。我已经复制了下面的代码。我哪里错了?谢谢!

public class Card {
    public String cardName;
    private int[] cardValue = {(Integer) null, 1, 2, 3, 4, 5, 6, 7, 8, 
        9, 10, 11};
    private String[] cardSuit = {"C", "D", "H", "S"};


    public Card(String cardName, int[] cardValue, String[] cardSuit) {
        this.cardName = cardName;
        this.cardValue = cardValue;
        this.cardSuit = cardSuit;
    }
    public String makeCard(int[] cardValue, String[] cardSuit) {
        for(int i = 0; i < 12; i++) {
            for(int j = 0; j < 4; j++) {
                cardName = cardValue[i] + cardSuit[j];
                j++;
            }
            i++;
        }
        return cardName;
    }   
}
import java.util.Arrays;

public class Deck {

    public static String[] cardDeck = new String[52];

    public String[] makeDeck(String cardName) {
        for(int i =0; i < 52; i++) {
            cardDeck[i] = cardName;
            i++;
        }

        Arrays.fill(cardDeck, cardName);
        return cardDeck;
    }

    public static void main(String[] args) {
        System.out.println(Arrays.toString(cardDeck));
    }
}

标签: javaarraysplaying-cards

解决方案


您创建了一个新的字符串数组,String[] cardDeck = new String[52];但您从未为该数组分配任何值。String 是一个对象,初始化为 null。所以只会打印 null 。您永远不会调用任何类的任何方法,也不会初始化甲板和卡片。


推荐阅读