static メソッドからインスタンス変数を使う
このコードを実行するとどうなるか。
public class Main {
int count = 0;
public static void main(String[] args) {
count++;
System.out.println(count);
}
}
- A
1と出力される - B
0と出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: static の誤りはコンパイル時に見つかります。
- D: static な main からインスタンス変数 count を直接使えないので、コンパイルエラーです。
ポイント
- static メソッドには this が無いので、インスタンス変数やインスタンスメソッドを直接使えません。