如何使用Java构造函数实例化数组?

时间:2015-05-25 23:45:13

标签: java arrays constructor

我有一个类的构造函数,它将模拟骑士在java中的游览。现在,构造函数接受起始行和列。我想知道是否有可能采用电路板尺寸(总行数,总列数)的方法?我对java很新,并且不完全理解数组,所以任何帮助都会非常感激!

public KnightsTour(int startRow, int startCol)
  {
    myBoard = new int[9][9];
    myCheckList = new int[9]; // myCheckList initialized with all 0
    myRandomMove = new Random();

    myMoveNumber = 1;

    // myRow and myCol start at (1,1)
    myRow = startRow;
    myCol = startCol;
    myBoard[myRow][myCol] = myMoveNumber;  // gets the board started
  }

2 个答案:

答案 0 :(得分:3)

您可以在数组构造函数中使用包含变量引用的任何整数类型表达式。因此,您可以为类的构造函数添加另外两个参数,以指定电路板大小:

public KnightsTour(int startRow, int startCol, int height, int width) {
  myBoard = new int[height][width];
}

答案 1 :(得分:0)

Chessboard有64个空格,由8个文件和8个等级组成

Java数组从0开始,上面的代码设计为从1开始。鉴于9-18myBoard = new int[9][9];中有8个空格。国际象棋棋盘上的每个等级和文件都有一个。

Standard Chessboard

要传入它并仍然使用一个数组索引的偏移(如果必须),这可能看起来像

public KnightsTour(int startRow, int startCol, int ranks, int files) {
  myBoard = new int[ranks + 1][files + 1];
  myCheckList = new int[ranks + 1];