操纵另一个 class 的 public 变量,你是 public 的对象

Manipulate public variable of a different class that you are a public object of

我想在 class Beta 中从 class Alpha 访问一个 public 变量,但编译器说该变量对于 class Beta 是未定义的。请注意,Beta 本身也是 Alpha 的 public 对象。

public class Alpha
{
   public Beta b = new Beta();
   public Boolean theVariable = true;

   public static void main(String[] args) throws IOException 
   {
      Alpha alpha = new Alpha();
   }
}

public class Beta
{
   // Perform an action
   theVariable = false; //This step is considered invalid 
}

我试过制作一种方法来检索它和其他一些东西,但我一定是遗漏了一些东西,因为我无法让它接受这个。

如果 Beta 实例只能由 Alpha 实例访问,您可能应该实现内部 class 关系。

首先声明您的 "shared" 变量,然后声明您的内部 class。之后,您可以创建 Beta 实例并使用 "shared" 变量执行任何操作。

public class Alpha
{
    public boolean theVariable = true;

    public class Beta
    {
       // Perform an action
       public void doSomething() {
           theVariable = false; // Should now be ok
       }
    }

    public Beta b;

    // constructor
    public Alpha() {
        b = new Beta();
    }

    // do something with Beta
    public void doSomethingWithBeta() {
        b.doSomething();
    }
}