私には矛盾しているように思われるものの背後にある理由について、いくつかの混乱があります。
例えば
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 キーワードが原因でしょうか? なぜ?