操纵另一个 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();
}
}
我想在 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();
}
}