【发布时间】:2018-05-01 07:01:28
【问题描述】:
无法弄清楚如何做这件事。我需要在数组中存储和计算“跳跃”的数量和“跳跃”的方向。 控制台必须显示如下内容:
:跳转1,向左
:跳转 2,方向右
在我下面的代码中,当我打印数组元素时,int jump 总是等于 0;
我尝试了很多变化,有时我得到了(例如):
jump();
jump();
jump();
jump();
它会打印:{0,0,0,4},而不是 {1,2,3,4};
public class Jump {
int jump;
String direction;
Jump[] jumpArray = new Jump[100];
int storeJump;
String storeDirection;
public void jump() {
jump++;
if (jump > 50) {
System.out.println("need a rest");
return;
} else {
for (int i = 0; i < jumpArray.length; i++) {
jumpArray[i] = new Jump();
}
}
jumpArray[jump].storeJump = jump;
jumpArray[jump].storeDirection = direction;
}
public static void main(String[] args) {
Jump jumper = new Jump();
jumper.jump();
jumper.jump();
for (int i = 0; i < jumper.jump; i++) {
System.out.println(jumper.jumpArray[i].jump);
}
}
}
【问题讨论】:
-
在您的
jump()方法中,您每次都替换所有Jump对象:jumpArray[i] = new Jump();,这可能不是您想要的。 -
您只打印来自
jumpArray的元素,即Jump[]。在Jump#jump()中,您为Jump#jump调用的每个调用重复重新初始化数组,最后将jump的增量值存储在Jump#storejump中。但最后你打印jumpArray[i].jump,因为你从来没有在方法中为它赋值,所以总是0。此外,还有一些设计缺陷使其比应有的难度更大 -
如果我可能会问这个问题:为什么类会跳转一个自身的数组 jumpArray 作为一个字段?这似乎是一个奇怪的设计。