class Grade {
public static int f = 2;
public static void main(String[] args) {
for (int f = 0; f < 2; f++) {
System.out.println(f);
}
}
}
"int f"は静的変数fを上書きしますか?静的int fはクラス全体で共有されていると思います。なぜコンパイラがこの変数が再定義されたというエラーメッセージを出さないのですか?なぜそれは静的なfの複製にならないのですか?私は、Javaではスコープブロックが親ブロックの変数を継承すると考えました。Javaの変数スコープ
ありがとうございました。そこに何か読むことがありますか? –
そのウィキペディアのページはかなり明確にすべきです。だから、どのように(そして、どこで)シャドウイングが起こるのかを知ること以外に、他にはあまりありません。 – Mysticial
@ArtemMoskalev Java言語の公式な質問はJava言語仕様(別名JLS)です。あなたの質問については、6.3.1を参照してください。 http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.3.1 –