2 回答

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
在線的:
int steps = this[tileX][tileY]; //Problem code
你試圖拯救你正在調(diào)用一個(gè)array不正確的
首先,您需要聲明一個(gè)array. 并在您的簽名中說(shuō)明您要傳遞到數(shù)組中的值。所以它看起來(lái)像這樣:
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貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
根據(jù)該文檔為this:
在實(shí)例方法或構(gòu)造函數(shù)中,this是對(duì)當(dāng)前對(duì)象的引用——正在調(diào)用其方法或構(gòu)造函數(shù)的對(duì)象。
所以在你的getSteps()方法中你試圖調(diào)用[tileX][tileY]一個(gè)沒(méi)有意義的對(duì)象。如果對(duì)象有一個(gè)2Darray類變量,你需要調(diào)用[tileX][tileY]的array,而不是直接的this。
我還希望該steppedOn方法將其加一。
在您的steppedOn()方法中,您只打印數(shù)字加一。但是,這只會(huì)增加您打印出來(lái)的數(shù)字,而不是實(shí)際值。要實(shí)際增加值,請(qǐng)執(zhí)行
public void steppedOn(int tileX, int tileY) {
System.out.println(room[tileX][tileY]++);
}
添加回答
舉報(bào)