我有这个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);
}
}
答案 0 :(得分:1)
此上下文中的初始化是指将类的某些内部状态设置为某些默认值。通常,初始化是
的内部逻辑这些是一般规则。另一方面,Mutators通常是可调用的方法,它将类的内部状态设置为不同于当前的状态。要设置的数据作为参数传递给方法。 Java中的Mutators是接受单个参数的方法,并遵循命名模式setXXX
,其中XXX是类中要变异的属性的名称。该方法的单个参数应与要变异的属性具有相同的类型。所以在你的例子中:
public void setBoard(Cell[] board){
// ...
}
setBoard
是board
类型的属性Cell[]
的增变器。实现很可能只是简单地用传入的内容替换board
的当前值,例如:
public void setBoard(Cell[] board) {
this.board = board;
}