基于文本的Java游戏将变量传递给另一个类

时间:2012-06-18 20:34:54

标签: java variables

我正在编写一个基于文本的Java游戏,我遇到了一些我无法理解的问题。

我的代码按以下方式运作:

        public class main() {
           run initial method for menu
           Player player = new Player(name,1,1,1);
           do{
           game code
           while(running = true)
          }

       public class Player() {
           string name
            int age
            int level
            int exp

           getName()
           setName() etc etc
          }

       public class Train() {
        kill monster
        totalExp = monsters killed

        }

现在,问题是,我如何将获得的exp传递给具有get和set方法的player类? exp是在Train类中计算/生成的,但我需要将它传递给Player,这样我就可以使用.set / .get并在我的Main类中显示更新的信息。

会添加:

播放器播放器=新播放器(名称,1,1,1)进入Train类只需创建一个Player对象的新对象,所以我将有两个,并将exp分配给Train()中的播放器,但保留一个主要是()。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您可以将播放器实例传递给Train方法,以便Train可以直接对该实例进行操作

E.g:

public void Train(Player player) {
  kill monster
  totalExp = monsters killed
  player.setXP(player.getXP() + totalExp)
}

答案 1 :(得分:2)

你认为在火车上添加一个新的Player对象会让另一个没有受到影响是正确的。您可以做的是在Player类中添加Train的引用,并在构造函数中指定它。 E.g。

class Train {
    Player player;
    public Train(Player p) {
        player = p;
        /* ... */
    }
    /* ... */
}

然后,您可以在火车类中调用player.method(),它将更新您传递给构造函数的Player

因此,当您创建Train的实例时,将其传递给您已创建的Player,它将根据列车中的内容更新播放器。

Player p = new Player(...);
Train t = new Train(p);