Java声明一个变量然后初始化它。

时间:2013-10-08 07:03:21

标签: java

public class TestVariableDeclaration{
    int j;  // ERROR
    j=45;   // ERROR

    static{
        int k;
        k=24;

    }

    {

        int l;
        l=25;
    }

    void local(){
        int loc;
        loc=55;
    }

}
  1. 在上面为什么我不能声明变量“j”然后直接在类
  2. 下初始化
  3. 我可以在Method,Static / Instance初始化块下以相同的方式声明然后初始化吗?
  4. 有什么不同,我知道Java不支持声明然后初始化实例变量这一事实。这背后的原因是什么?

3 个答案:

答案 0 :(得分:2)

  1. 你可以在类级别声明int j = 45;如Subhrajyoti Majumder所述
  2. k是一个特殊的函数/方法,称之为静态初始化器。它在加载类时执行。 k只在此方法中已知
  3. l是一个在类实例化时执行的特殊方法。 l仅在此方法中已知。
  4. 这是非常基本的java东西。

    (编辑:拼写错误)

答案 1 :(得分:0)

在正常情况下声明变量之前,不能使用变量。所以

j=45; 

在顶部将失败,因为j尚未宣布。

除非我没有得到你的问题,否则这很可能是:

class SomeClass {
    int j; // declare it
    {
        j=45; // initialize it
    }
}

或者更简洁:

class SomeClass {
    int j = 45; // declare and initialize
}

答案 2 :(得分:0)

为什么不简单地初始化并像这样一起声明它 - > int j=45;?它对我有用..