Java - 转换“this [int x,int y]”

时间:2012-08-15 18:05:01

标签: java this

我正在做的是将c#项目转换为java,以便在编写自定义类时进行练习。 不幸的是,我无法弄清楚这个人正在做什么"这个"构造函数中的关键字。

// C# Code - How is this written in Java?
public Player this[int x, int y] 
{ 
    get { return squares[x, y]; } 
    set { squares[x, y] = value; } 
}

我已经转换了很多代码,并且有点坚持这个。我似乎无法在Java中找到有关此特定实例的任何信息。有没有人对我有好的领导?

3 个答案:

答案 0 :(得分:9)

那不在构造函数中。那是indexer的宣言。 Java等价物将类似于:

public Player getPlayer(int x, int y)
{
    // Note: Java doesn't have "real" multidimensional arrays,
    // only arrays of arrays.
    return squares[x][y];
}

public Player setPlayer(int x, int y, Player player)
{
    squares[x][y] = player;
}

答案 1 :(得分:0)

这是Using Indexers (C#)

这个blog有一些关于如何将C#索引器移植到java代码的想法。

基本上它可以在java getter / setter中实现:

public Player get(int x, int y) { return squares[x][y];}

public Player set(int x, int y, Player p) { squares[x][y] = p;}

答案 2 :(得分:0)

那不是构造函数,而是indexer。基本上,这个定义允许你这样做:

Player playerAtOrigin = myGameBoard[0, 0];

在Java中,只有数组具有索引器(例如myArray[i]),您无法定义自己的索引器。最有可能的是,您需要将其转换为两种方法getPlayerAt(int x, int y)setPlayerAt(int x, int y, Player player)