-10

像这样的编程,

static {
  a = 6;
}

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

4

3 回答 3

10

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

class X {
     private static int a;

     static {
         a = 6;
     }
}

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

  1. 执行静态语句/静态块。
  2. 实例变量被赋予默认值
  3. 如果为实例变量分配了编译时间常数,则初始化实例变量。否则,它将与第 5 项一起完成(实例变量实例初始化器将按照定义的顺序从上到下一起完成)。
  4. 构造函数运行
  5. 实例初始化块在对 super 的所有调用都已完成但在构造函数的其余部分执行之前运行。
  6. 其余的构造函数被执行。
于 2013-08-04T08:30:49.580 回答
1

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

于 2013-08-04T08:28:47.977 回答
0

我想你在某个地方初始化了变量 a

 private static int a;
static {
  a = 6;
  }
于 2013-08-04T08:52:21.327 回答