我只是开始编码。我想写一个游戏代码,我有一个问题: 我想在另一个类中调用一个类的对象,但是我的代码存在错误。
我有三个类:Game,Player,commandReader。
班级球员:
public class Player{
public void moveUp(){
...
}
}
我在Game类中创建了一个Player类对象:
public class Game{
public Player player;
private Game(){
player = new Player;
}
// methods omitted
}
我想在名为commandReader的另一个类中调用对象“player”:
public class commandReader{
public readCommand(String command){
if(command == "Up"){
player.moveUp();
}
}
}
但运行代码时出错。对于类commandReader,对象播放器是未知的。我应该提一下,我不想在类commandReader中创建另一个类Player的对象,我只使用在Game类中创建的对象。 我怎么称呼它?
答案 0 :(得分:1)
您必须将对游戏类的引用传递给commandReader的构造函数。
Game game;
public commandReader(Game game)
{
this.game = game;
}
然后你可以打电话
game.player.moveUp();
答案 1 :(得分:0)
嗯,有一些错误。
在课程游戏中,您必须以这种方式声明变量播放器:
public Player player;
然后在Game类的构造函数中
player = new Player();
无法调用哪个,因为在Player类中没有构造函数
class Player{
//CONSTRUCTOR (initialize the object)
public Player(){
}
[...]
}
在调整之后,您可以使用
从commandReader调用播放器Game.player.moveUp();//Only if it's a static variable
希望你能理解新的东西。
[UPDATE]
你还没有在Game类中添加构造函数,因为它必须是
public Game(){
[...]
}
而不是
private Game(){
[...]
}
然后在commandReader中你必须通过
创建一个Game对象Game game = new Game();
然后是玩家
game.player.moveUp();
答案 2 :(得分:0)
commandReader类不会在任何地方显示游戏对象。
public class commandReader{
Game myGame = new Game();
public readCommand(String command){
if(command == "Up"){
myGame.player.moveUp();
}
} }