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. 我可以在Method,Static / Instance初始化块下以相同的方式声明然后初始化吗?
  3. 有什么不同,我知道Java不支持声明然后初始化实例变量这一事实。 这背后的原因是什么?

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

这是非常基本的java东西。

(编辑:错别字)

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

 j=45; 

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

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

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

或者更简洁:

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

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