创建和传递java对象

创建和传递java对象,java,object,Java,Object,试图理解如何使用java正确访问和传递程序中的其他对象 在我的小程序中,我们看到以下内容: 我有一个战斗类需要知道我的英雄当前的生命值,这是我的英雄类的一个实例 以前,如果另一个类需要知道英雄的HP,我只需要使用一个静态变量来存储HP。我被告知这是对静电的错误使用。下面,我在战斗中创建了一个方法,明确使用将英雄传递到战斗中。因此,向前看,任何时候我需要战斗来访问任何与我的英雄对象相关的东西,我都可以 这有意义吗?我走对了吗 public class Combat { public void

试图理解如何使用java正确访问和传递程序中的其他对象

在我的小程序中,我们看到以下内容:

我有一个战斗类需要知道我的英雄当前的生命值,这是我的英雄类的一个实例

以前,如果另一个类需要知道英雄的HP,我只需要使用一个静态变量来存储HP。我被告知这是对静电的错误使用。下面,我在战斗中创建了一个方法,明确使用将英雄传递到战斗中。因此,向前看,任何时候我需要战斗来访问任何与我的英雄对象相关的东西,我都可以

这有意义吗?我走对了吗

public class Combat
{
   public void passHero(Hero hero1)
   {

   }
}

public class Main
{
    public static void main(String args[])
    {

      Hero hero1 = new Hero();

      //passing hero to Combat
      combat.passHero(hero1);
    }
}

你在正确的轨道上。当您想要在对象上设置属性(在本例中为战斗的英雄属性)时,该对象(战斗)通常提供设置和检索其属性的公共方法。您可能只想在战斗类上创建一个英雄设定者,或者将英雄传递给构造函数

public class Combat
{
   private Hero hero;

   //setter
   public void setHero(Hero hero1)
   {
      this.hero = hero1;
   }

   //constructor
   public Combat(Hero hero1)
   {
      this.hero = hero1;
   }
}

public class Main
{
    public static void main(String args[])
    {

      Hero hero1 = new Hero();

      //passing hero to Combat
      Combat combat = new Combat(hero1);
      //or 
      combat.setHero(hero1);
    }
}