我如何在Java中创建一个全局变量

时间:2014-12-08 11:53:43

标签: java if-statement global-variables

我试图在类的main方法之外使用if语句,但我想在main方法中声明所有变量,我该怎么做

public class Main 
{
    public static void main(String[] args)
    {
        int i = 0;
        int t = 0;
        int st = 0;
        int h = 0;

        Texts textObject = new Texts();
        textObject.TextList();

        Commands commandObject = new Commands();
        commandObject.commands();

        GUImain guiObject = new GUImain();
        guiObject.displayGUI();
    }
    public Main()
    {

        if(t == 0)
        {

        }
    }
}

1 个答案:

答案 0 :(得分:4)

简短的回答是你几乎肯定不应该这样做。

但如果您真的想要,那么您可以将变量声明为static。如果你移动这个

int i = 0;
int t = 0;
int st = 0;
int h = 0;

开始,在class声明之后,并更改为

static int i = 0;
static int t = 0;
static int st = 0;
static int h = 0;

然后你会发现你可以作为全局变量访问它们,至少从这个包里面。如果你宣布他们为public,你也可以从任何地方告诉他们。

但是,实际上,你根本不应该这样做。让您的public static void main()方法创建类的实例(Main m = new Main()),然后在m上调用一些实例方法。该实例方法将能够访问非静态(实例)字段。

每当您觉得需要全球化时,请问自己是否表明您的代码没有以正确的方式构建。大多数时候(并非总是如此)当你认为自己想要一个全球化时,你并不是真的。这只会使结构问题变得更糟。