我目前正在制作带有GUI和所有内容的推箱子游戏,我正在进行优化,我希望尽可能保持对象的合理性,因此需要能够从类中的方法调用构造函数/宾语。假设:
public class BoardGame() {
public BoardGame)() {
this(1)
}
public BoardGame(int level){
//Do stuff, like calling filelevel-to-board loaderclass
}
如何在对象/类本身中创建一个调用此对象/类的构造函数的方法?例如:
public BoardGame nextLevel() {
return BoardGame(currentLevel+1);
}
以上显然是未定义的!
这样如果我想在另一个类中使用这个对象,我应该可以这样做:
GameBoard sokoban = new GameBoard(); //lvl1
draw(GameBoard);
draw(GameBoard.nextLevel()); //draws lvl2
答案 0 :(得分:2)
您需要使用new
关键字来调用构造函数。
public BoardGame nextLevel() {
return new BoardGame(currentLevel + 1);
}
答案 1 :(得分:0)
调用构造函数需要new
关键字并始终创建新实例。例如,在您的示例代码中
GameBoard sokoban = new GameBoard(); //lvl1
draw(sokoban );
draw(sokoban.nextLevel()); //draws lvl2
sokoban <-- still level 1
也许你想让GameBoard变得可变:
public class GameBoard {
public GameBoard() {
setLevel(1);
}
private void setLevel(int i) {
currentLevel = i;
....
}
public void nextLevel() {
setLevel(currentLevel+1);
}
}