我发现需要从我的主类引用/访问全局变量。我正在使用另一个类,它也涉及一个线程(用于网络的东西)。基本上我想知道我是否可以通过以下方式执行此操作(我已经检查过,并且我没有收到任何编译错误):
public class One
{
public static int number;
public static void main(String [] args)
{
number = 5;
Two two = new Two();
System.out.println(number);
}
}
public class Two
{
public Two()
{
One.number = 10;
}
}
如果是这样,那可以接受吗?有没有更好的方法(除了通常传递参数之外)?
感谢您花时间阅读本文,对不起,如果我感到困惑(累了x.x)。
答案 0 :(得分:0)
执行此操作的首选方法是将其作为私有变量并将accessor和mutator方法添加到包含信息的类中,例如:
//Accessor
public int getNumber()
{
return number;
}
//Mutator
public void setNumber(int num)
{
number = num;
}
我想你确实说过“除了传递论据之外”,但这也是你可以接受的方式。通过这种方式,您可以防止外部类错误地操纵数据等。
答案 1 :(得分:0)
可以访问它但是如果你使用线程,则确保多个线程不在同一个变量上同时写入。在这种情况下,您可以使用同步块进行写操作,也可以使用锁定机制。 对此也有一个建议。将该变量设为私有,并使用getter和setter访问它以限制可见性和误用。