Java Mutator:初始化与传递给参数

时间:2013-03-24 21:14:14

标签: java mutators

我有这个java mutator setBoard,

public void setBoard(Cell[] board){
        for(int i=0; i < board.length; i++)
            this.board[i] = new Cell(0, "E");   
        makeChutes(numChutes);
        makeLadders(numLadders);
}

makeChutes和makeLadders是与setBoard在同一类中的方法。他们将滑槽和梯子全部放在随机的地方。 numChutes和numLadders来自此类的构造函数。

我的理解是我创造了一个变形器,首先设置一个空白板,然后放置一些滑槽和梯子。然而,我的教授说setBoard方法不应该初始化板,它应该设置传递给参数的内容。我不完全确定这意味着什么。

Cell是以下对象,

public class Cell{

private String type;
private int space;

public Cell(){
}

public Cell(int m, String r){
    this.space = m;
    this.type = r;
}
public void setType(String r){
    this.type = r;
}
public void setSpace(int m){
    this.space = m;
}
public boolean isChute(){
    return type.equals("C");
}
public boolean isLadder(){
    return type.equals("L");
}
public boolean isEmpty(){
    return !type.equals("C") && !type.equals("L");
}
public String toString(){
    return this.type + Math.abs(this.space);

}
}

1 个答案:

答案 0 :(得分:1)

此上下文中的初始化是指将类的某些内部状态设置为某些默认值。通常,初始化是

的内部逻辑
  1. 不作为公开,可调用的方法公开
  2. 不需要提供数据才能完成
  3. 这些是一般规则。另一方面,Mutators通常是可调用的方法,它将类的内部状态设置为不同于当前的状态。要设置的数据作为参数传递给方法。 Java中的Mutators是接受单个参数的方法,并遵循命名模式setXXX,其中XXX是类中要变异的属性的名称。该方法的单个参数应与要变异的属性具有相同的类型。所以在你的例子中:

    public void setBoard(Cell[] board){
        // ...
    }
    

    setBoardboard类型的属性Cell[]的增变器。实现很可能只是简单地用传入的内容替换board的当前值,例如:

    public void setBoard(Cell[] board) {
        this.board = board;
    }