Java 从对象类访问二维数组。

Java 从对象类访问二维数组。,java,arrays,class,Java,Arrays,Class,在Java中,我有一个二维的对象数组,但我不能访问对象类方法中的任何对象数组。我该怎么办? 这是我的班级: class GoPiece { final int boardSize = 19; final int empty = 0; final int black = 1; final int white = 2; int pieceType = empty; int leftRight; int downUp; int turnP

在Java中,我有一个二维的对象数组,但我不能访问对象类方法中的任何对象数组。我该怎么办? 这是我的班级:

class GoPiece
{
    final int boardSize = 19;
    final int empty = 0;
    final int black = 1;
    final int white = 2;
    int pieceType = empty;
    int leftRight;
    int downUp;
    int turnPlayed;
    boolean legal;
    // GoPiece's Constructor with 3 parameters.
    GoPiece(int blackOrWhite, int horizontalCoordinate, int verticalCoordinate)
    {
        pieceType = blackOrWhite;
        leftRight = horizontalCoordinate;
        downUp = verticalCoordinate;
        if ((true));
    }
    // GoPiece's Constructor with 2 parameters.
    GoPiece(int horizontalCoordinate, int verticalCoordinate)
    {
        pieceType = empty;
        leftRight = horizontalCoordinate;
        downUp = verticalCoordinate;
    }
    // GoPiece's Constructor with no parameters.
    GoPiece()
    {
        leftRight = 0;
        downUp = 0;
    }
    // Initialize an empty Go board full of GoPieces.
    GoPiece[][] InitializeBoard()
    {        
        GoPiece[][] intersection = new GoPiece[boardSize][boardSize];
        for(int horizontal = 0; horizontal < boardSize; horizontal++)
        {
            for(int vertical = 0; vertical < boardSize; vertical++)
            {
                intersection[horizontal][vertical] = new GoPiece(horizontal,vertical);
            }
        }
        return intersection;
    }

    // Make a piece a certain type: empty, black, or white.
    public void SetType(int newType)
    {
        pieceType = newType;
    }

    public int GetType()
    {
        return pieceType;
    }

    public void CheckKill()
    {
        int foobar = this.GetType();
    }
}
classgopiece
{
最终int boardSize=19;
最终整数为空=0;
最终整数黑色=1;
最终整数白=2;
int-pieceType=空;
int leftRight;
int-dowup;
整场比赛;
布尔合法;
//GoPiece的构造函数有3个参数。
GoPiece(整数黑白、整数水平坐标、整数垂直坐标)
{
pieceType=黑色或白色;
leftRight=水平坐标;
向下=垂直坐标;
如果((真));
}
//GoPiece的构造函数有2个参数。
GoPiece(int水平坐标、int垂直坐标)
{
pieceType=空;
leftRight=水平坐标;
向下=垂直坐标;
}
//GoPiece的构造函数没有参数。
戈皮克()
{
leftRight=0;
downUp=0;
}
//初始化一个满是棋子的空棋盘。
GoPiece[]初始化板()
{        
GoPiece[][]交叉点=新GoPiece[boardSize][boardSize];
对于(int horizontal=0;horizontal
然后,我可以在程序的另一部分中使用InitializeBoard()创建一个二维的GoPieces数组。。。这是可行的,但是除了我在类GoPiece的成员函数中引用的部分之外,我如何访问所有这些部分呢?我尝试将整个数组传递到其中一个GoPieces函数中,但这似乎不起作用

围棋是一种古老的中国棋类游戏。在上面的CheckKill()方法中,我尝试访问数组的不同部分,但失败了。这里我有一些工作的虚拟代码


谢谢。

您需要创建一个单独的类来表示电路板本身(包括当前的工件放置)。创建电路板、测试杀戮等的逻辑属于电路板,而不是单个元件。

您需要创建一个单独的类来表示电路板本身(包括元件的当前位置)。创建板、测试kill等的逻辑属于板,而不是单个块。

您的意思是要使用数组调用方法,如
InitializeBoard.GetType()其中InitializeBoard是二维数组


你不能那样做。您必须指定要从InitializeBoard中取出的GoPiece。示例:
InitializeBoard[0][0]。GetType()
如果必须调用所有方法,则可以使用for循环分别调用每个方法。

您的意思是要使用类似
InitializeBoard.GetType()的数组调用方法吗其中InitializeBoard是二维数组


你不能那样做。您必须指定要从InitializeBoard中取出的GoPiece。示例:
InitializeBoard[0][0]。GetType()
如果必须调用所有方法,可以使用for循环单独调用每个方法。

一句话:智能板;笨蛋,谢谢你,特德。我就是这么想的,但我正试图找到一个好的方法来做到这一点。我想如果我的电路板尺寸设置好了会更容易些,但我希望它是可变的。我将继续尝试创建一个board类。@EricMartin-您可以在构造函数中创建一个接受board大小的board类。您还可以以允许动态调整电路板大小的方式写入。(你必须想出一个处理任何现有的黑色或白色部件的策略。)用一句话来说:智能板;笨蛋,谢谢你,特德。我就是这么想的,但我正试图找到一个好的方法来做到这一点。我想如果我的电路板尺寸设置好了会更容易些,但我希望它是可变的。我将继续尝试创建一个board类。@EricMartin-您可以在构造函数中创建一个接受board大小的board类。您还可以以允许动态调整电路板大小的方式写入。(您必须制定一个处理任何现有黑色或白色片段的策略。)请遵循并使用初始小写方法名称请遵循并使用初始小写方法名称