在我的主类中引用全局变量?

时间:2014-11-21 05:01:54

标签: java

我发现需要从我的主类引用/访问全局变量。我正在使用另一个类,它也涉及一个线程(用于网络的东西)。基本上我想知道我是否可以通过以下方式执行此操作(我已经检查过,并且我没有收到任何编译错误):

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)。

2 个答案:

答案 0 :(得分:0)

执行此操作的首选方法是将其作为私有变量并将accessor和mutator方法添加到包含信息的类中,例如:

//Accessor
public int getNumber()
{
    return number;
}

//Mutator
public void setNumber(int num)
{
    number = num;
}

我想你确实说过“除了传递论据之外”,但这也是你可以接受的方式。通过这种方式,您可以防止外部类错误地操纵数据等。

答案 1 :(得分:0)

可以访问它但是如果你使用线程,则确保多个线程不在同一个变量上同时写入。在这种情况下,您可以使用同步块进行写操作,也可以使用锁定机制。 对此也有一个建议。将该变量设为私有,并使用getter和setter访问它以限制可见性和误用。