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]++);
}
添加回答
舉報