创建全局变量 - Java

时间:2017-06-10 12:29:25

标签: java global-variables

我收到此代码的编译错误:

 private void button1_Click_1(object sender, EventArgs e)
    {
        CheckBox[] c = new CheckBox[10];
        for (int i = 0; i < c.Length; i++)
        {
            for (int j = 1; j < c.Length; j++)
            {
                c[i] = new CheckBox();
                c[j] = new CheckBox();

                c[i].Location = new Point(5, i * 20);
                c[j].Location = new Point(j * 20, 20);
                this.Controls.Add(c[i]);
                this.Controls.Add(c[j]);
            }
        }

我想和#34;匹配&#34;全局变量。

我的编译错误是: &#34;内部类testprogram.Matching修饰符&#39; static&#39;中的非法静态声明只允许在常量变量声明中

在初始化期间使用静态非最终变量。&#34;

不知道错误的含义,也不知道如何修复错误。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

这是因为您的Matching类位于另一个名为testingProgram的类中,而不是static

只有当内部类本身为static时,Java才允许内部类中的static个字段。您可以通过多种方式解决此问题:

  • Matching设为static内部类,
  • Matching设为顶级课程,或
  • 通过static int match最终,即final static int match

答案 1 :(得分:0)

在某个静态类(例如main)中创建变量,并确保将其传递给此类的构造函数。我不知道你为什么要这样做,但这很难的原因是因为这不是一个好主意。如果您需要保存“匹配”状态,请提供更多信息。

public static void main() {
    int match;
    Matching m = new Matching(match);
}