需要数组,但找到了对象

我正在尝试为自定义对象创建一个访问器,该对象Room有一个瓷砖网格,每个瓷砖都有一个整数值。我希望该getSteps方法返回该整数值,给定关联Room对象的坐标;我还希望该steppedOn方法将其加一。


public Room(int tilesLong, int tilesWide) {

    length = tilesLong + 2;

    width = tilesWide + 2;

}


 private int getSteps(int tileX, int tileY) {

    int steps = this[tileX][tileY];  //Problem code

    return steps;

}


public void steppedOn(int tileX, int tileY) {

    System.out.println(room[tileX][tileY] + 1);

}

我知道这可能不是正确的方法,但我不知道如何去做。


开满天机
浏览 219回答 2
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);   }}

偶然的你

根据该文档为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]++);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java