在Java中共享数据和方法的正确方法

时间:2012-08-22 05:49:36

标签: java oop class

所以我终于开始学习高效的编程(曾经用过一个类),到目前为止我正在制作的这个新游戏有以下几个类:

  • GameDriver
  • 地图
  • 播放器

到目前为止,Map创建了一个Block对象的ArrayList,而GameDriver创建了一个Map对象和一个Player对象,现在这些对象完美无缺。但现在我遇到了一个问题。

我向Player添加了一个名为checkLand()的方法,而GameDriver调用该方法来检查玩家是否可以踩到某个位置,但是为了能够检查它的方法,它需要访问该地图对象。 GameDriver正在使用,所以我尝试了这个:

public class Player(){
    GameDriver gameDriver = new GameDriver();
    ...more declarations    

    public boolean checkLand(int xCord, int yCord){
        if (gameDriver.map.world.get(gameDriver.map.getByCords(xCord,yCord)).type == 1) {
            return false;
        } else {
            return true;
        } 

    }

但显然它不起作用,但我想向你们展示,这样你就可以了解我想要它做什么,我应该在GameDriver中使用checkLand方法吗?我想知道最好的方式:)

1 个答案:

答案 0 :(得分:2)

由于Player对象正在创建GameDriver对象,因此您应该能够访问Player类中的GameDriver对象。另外,您说Map对象也是在GameDriver类中创建的,因此也可以使用。

你可以做的是在Player类中使用一个方法,该方法将Map个对象作为参数并执行你需要的逻辑。

这将允许您的GameDriver对象调用它拥有的对象(Player)并将其传递给另一个对象(Map)。