Accessing objects of other classes

前端 未结 3 1601
独厮守ぢ
独厮守ぢ 2020-12-09 06:40

I\'ve recently picked up Java and have run into a problem. I have several files with different classes, but I can\'t figure out how I can access objects of the other classes

相关标签:
3条回答
  • 2020-12-09 06:58

    A good place to start would be to pass in the player you want to attack "when" the monster attacks.

    battle.java

    public class Battle {
    
      public static void main(String[] args) {
        Player player = new Player();
        Monster monster = new Monster();
        monster.attackPlayer(player);
      }
    }
    

    player.java:

    public class Player 
    {
        public int getLocation()
        {
             return 2;
        }
    }
    

    monster.java:

    public class Monster
    {
        public void attackPlayer(Player player)
        {
            player.getLocation();
        }
    }
    
    0 讨论(0)
  • 2020-12-09 07:08

    You're probably just wanting something like this:

    player.java:
    public class Player 
    {
        public static void main(String[] args) {
            Player player = new Player();
            Monster monster = new Monster();
            monster.attackPlayer(player);
        }
        public int getLocation()
        {
             return 2;
        }
    }
    
    monster.java:
    public class Monster
    {
        public void attackPlayer(Player player)
        {
            player.getLocation();
        }
    }
    

    Hope that helps/makes sense!

    0 讨论(0)
  • 2020-12-09 07:20

    A class is just a blueprint for an object.

    You can only call the methods defined in the Player class on an actual Player object, which you've instantiated - you've done this in the following line in the main(String[] args) method:

    Player player = new Player();
    

    However the player variable is now only available to code in the scope of its declaration - in this case, anywhere after this line in the main(String[] args) method.

    It's not available outside of this scope. The attackPlayer() method in the Monster class is most definitely outside of this scope! When you reference player there, the compiler has no clue what that token refers to. You must pass in an argument of type Player, named player (or anything you like, really), to that method before you start to call methods on it.

    0 讨论(0)
提交回复
热议问题