static変数-2
クラス変数は通常、『クラス名.クラス変数名』という形式でアクセスします。
クラス名の替わりにインスタンスを参照している変数を指定してもクラス変数にアクセスできますが、
紛らわしいため推奨されません。
問題:以下の2つの代入文の説明として正しいものはどれか?
①x.s=100;
②x.i=100;
A. ①も②も実行可能
B. ①のみコンパイルエラー
C. ②のみコンパイルエラー
D. ①も②もコンパイルエラー
class M{
public static void main(String[] args) {
X x = new X();
x.s = 100;
x.i = 100;
}
}
class X{
static int s;
int i;
}
正解:
A. ①も②も実行可能
クラス名の替わりにインスタンスを参照している変数を指定してもクラス変数にアクセスできますが、
紛らわしいため推奨されません。
問題:以下の2つの代入文の説明として正しいものはどれか?
①x.s=100;
②x.i=100;
A. ①も②も実行可能
B. ①のみコンパイルエラー
C. ②のみコンパイルエラー
D. ①も②もコンパイルエラー
class M{
public static void main(String[] args) {
X x = new X();
x.s = 100;
x.i = 100;
}
}
class X{
static int s;
int i;
}
正解:
A. ①も②も実行可能