为了账号安全,请及时绑定邮箱和手机立即绑定

需要数组,但找到了对象

需要数组,但找到了对象

开满天机 2021-09-03 15:09:25
我正在尝试为自定义对象创建一个访问器,该对象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);}我知道这可能不是正确的方法,但我不知道如何去做。
查看完整描述

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);

   }

}


查看完整回答
反对 回复 2021-09-03
?
偶然的你

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]++);

}


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信