Java 试图使用另一个类中的变量

Java 试图使用另一个类中的变量,java,Java,但空间属于另一类,称为玩家 public class Boss{ public void Attack1(){ int randomspace = (int )(Math.random() * 3 + 1); System.out.println("Attacking space " + randomspace); if(space == randomspace){ //Something right here to kill the player

但空间属于另一类,称为玩家

public class Boss{

public void Attack1(){
    int randomspace = (int )(Math.random() * 3 + 1);
    System.out.println("Attacking space " + randomspace);
    if(space == randomspace){
        //Something right here to kill the player
    }
  }
}
我考虑过创建一个单独的空间变量,并同时更改它们,但是Boss类如何知道何时与Player类同时递增/递减。为了简单起见,将其保存在一个类中会更容易

编辑:我猜出来了<代码>公共类Boss扩展了Player{,解决了我的问题

使用参数。(并将方法小写)

老板会攻击一个空间

public class Player {
    int space = 1;
}
如果你需要玩家,那么你真的应该使用一些抽象类,比如说
Unit
,然后使用
Hero
作为主要部分

那你就可以

public void attack(int space){
    if(space == randomspace){
        //Something right here to kill the player
    }
理想情况下,
unit.getSpace()
也可以来自某个
Board
类,该类保存有关
unit
类型的所有信息


然后,其他地方的逻辑是
boss.attack(player)
boss.attack(player.getSpace())

为了在不同的类中使用变量,使用Setter和Getter方法。你有没有在谷歌上搜索过这个?粗略的搜索会发现许多重复项。我在网上搜索和钻研,找不到进一步的答案,Omore说,你的Boss类对空间变量一无所知,因为它属于Player类。您需要玩家类的实例才能访问玩家类的空间变量。修复了什么?这是否回答了您的问题?如果一个boss扩展了玩家,那么您正在检查随机空间是否是boss的当前空间?
public void attack(Unit unit){
    if(unit.getSpace() == randomspace){
        //Something right here to kill the player
    }