我對於我認爲是不一致的背後的推理有些混淆。Java默認值混淆,爲什麼沒有函數作用域變量?
例如
public class Test
{
static int a;
public static void main(String[] args)
{
System.out.println(a);
}
}
這樣會打印出0,符合市場預期。但說我們有這個代替,
public class Test
{
public static void main(String[] args)
{
int a;
System.out.println(a);
}
}
這不會爲我編譯,抱怨a尚未初始化。我期待它打印出0 ...
這我導致了一些問題:
1)爲什麼不函數範圍的變量有默認值?
2)請問static關鍵字是什麼原因?爲什麼?
在Java中,只有類變量具有默認值。 'Static'與它無關。 –