2 回答
TA贡献1863条经验 获得超2个赞
在线的:
int steps = this[tileX][tileY]; //Problem code
你试图拯救你正在调用一个array不正确的
首先,您需要声明一个array. 并在您的签名中说明您要传递到数组中的值。所以它看起来像这样:
public class room {
int length, width;
int[][] steps;
public room(int tilesLong, int tilesWide) {
length = tilesLong + 2;
width = tilesWide + 2;
steps = new int[width][length];
}
private int getSteps(int tileX, int tileY, int step) {
this.steps[tileX][tileY] = step;
return steps[tileX][tileY];
}
public void steppedOn(int tileX, int tileY) {
System.out.println(steps[tileX][tileY] + 1);
}
}
TA贡献1841条经验 获得超3个赞
根据该文档为this:
在实例方法或构造函数中,this是对当前对象的引用——正在调用其方法或构造函数的对象。
所以在你的getSteps()方法中你试图调用[tileX][tileY]一个没有意义的对象。如果对象有一个2Darray类变量,你需要调用[tileX][tileY]的array,而不是直接的this。
我还希望该steppedOn方法将其加一。
在您的steppedOn()方法中,您只打印数字加一。但是,这只会增加您打印出来的数字,而不是实际值。要实际增加值,请执行
public void steppedOn(int tileX, int tileY) {
System.out.println(room[tileX][tileY]++);
}
添加回答
举报