为什么变量在静态块中不需要类型

时间:2013-08-04 08:27:08

标签: java

像这样的编程,

static {
  a = 6;
}

为什么元素“a”不需要类型

3 个答案:

答案 0 :(得分:10)

这不是变量的声明,这是变量的赋值。 'a'的类型在其他地方定义。所以,这段代码本身不会编译,你需要一个变量声明,如:

class X {
     private static int a;

     static {
         a = 6;
     }
}

作为对以下评论的回答,这是初始化序列:

  1. 执行静态语句/静态块。
  2. 为实例变量分配默认值
  3. 如果为实例变量分配了编译时常量,则初始化实例变量。否则,将使用第5项完成(实例变量实例初始化程序将从顶部到底部按照它们的定义顺序一起完成。)
  4. 构造函数运行
  5. 在超级的所有调用已经完成但在执行其余构造函数之前运行的实例初始化块运行。
  6. 执行其余的构造函数。

答案 1 :(得分:1)

每个变量都需要Java中的类型。

答案 2 :(得分:0)

我认为你在某处初始化变量a

 private static int a;
static {
  a = 6;
  }