You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stapel类中print方法无法正常运行问题求助(新手咨询)

关于Stapel类中Karte数组打印方法的问题

嘿,完全理解你作为初学者的状态——谁都是从基础一步步摸爬滚打来的,不用不好意思!我先帮你把问题理清楚,再给你一些可行的实现思路:

你的当前代码结构梳理

  • 你创建了Stapel类,在它的构造方法里声明了两个Karte类型的数组:
    • 二维数组:Karte[][] karte = new Karte[4][15];
    • 一维数组:Karte[] extra = new Karte[16];
  • Karte类的构造方法是Karte(int wert, String name)(这里注意你写的是小写karte,Java里类名需要大写,大概率是笔误哦)
  • 你尝试编写public void print()方法来校验每个Karte对象是否正确初始化,但代码写到一半卡住了:for(int j=0;j&...

完整的print方法实现参考

如果你的目标是遍历两个数组,打印每个Karte对象的属性来校验初始化状态,那可以这样写:

public void print() {
    // 遍历二维数组karte的每一行
    for (int i = 0; i < karte.length; i++) {
        // 遍历当前行的每一个元素
        for (int j = 0; j < karte[i].length; j++) {
            if (karte[i][j] != null) { // 先判断对象是否已初始化,避免空指针异常
                System.out.println("Karte [" + i + "][" + j + "] - Wert: " + karte[i][j].wert + ", Name: " + karte[i][j].name);
            } else {
                System.out.println("Karte [" + i + "][" + j + "] 未初始化");
            }
        }
    }

    // 遍历一维数组extra
    for (int k = 0; k < extra.length; k++) {
        if (extra[k] != null) {
            System.out.println("Extra Karte [" + k + "] - Wert: " + extra[k].wert + ", Name: " + extra[k].name);
        } else {
            System.out.println("Extra Karte [" + k + "] 未初始化");
        }
    }
}

几个关键注意事项

  • 确保Karte类的wert和name属性是public修饰的,或者给它们添加getWert()、getName()这类getter方法(更符合面向对象的封装规范),否则Stapel类无法访问这些属性。
  • Java类名必须遵循大驼峰命名法,所以karte(int wert,String name)要改为Karte(int wert, String name),不然会触发编译错误。
  • 数组声明后只是分配了内存空间,每个元素默认是null,你需要在Stapel的构造方法里逐个初始化Karte对象,比如karte[0][0] = new Karte(1, "Ace");,不然print方法会打印“未初始化”的提示。

如果你的代码卡住的点不是这个,或者有具体的编译/运行错误,可以把完整代码和报错信息补充给我,我再帮你调整!

内容的提问来源于stack exchange,提问作者Maurice Co

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:13:23