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
相关产品推荐
相关产品推荐

