staticメソッド:問題4
問題:以下のクラスAのコンパイル結果はどれか?
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
int i;
static int j = 0;
void x() {
i++;
j++;
}
}
解答:
D. コンパイルエラーは発生しない
解説:
インスタンスメソッド(x)内では、インスタンス変数(i)もクラス変数(j)も使用できます。
インスタンス変数は初期値を指定しなければインスタンス化時に0で初期化されます。
初期値を指定しなくてもコンパイルエラーにはなりません。
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
int i;
static int j = 0;
void x() {
i++;
j++;
}
}
解答:
D. コンパイルエラーは発生しない
解説:
インスタンスメソッド(x)内では、インスタンス変数(i)もクラス変数(j)も使用できます。
インスタンス変数は初期値を指定しなければインスタンス化時に0で初期化されます。
初期値を指定しなくてもコンパイルエラーにはなりません。
staticメソッド:問題3
問題:以下のクラスAのコンパイル結果はどれか?
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
int i;
void x() {
static int j = 0;
i++;
j++;
}
}
解答:
A. static int j = 0;でコンパイルエラー
解説:
staticな変数はメソッド内では定義できません。
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
int i;
void x() {
static int j = 0;
i++;
j++;
}
}
解答:
A. static int j = 0;でコンパイルエラー
解説:
staticな変数はメソッド内では定義できません。
staticメソッド:問題2
問題:以下のクラスAのコンパイル結果はどれか?
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
static int j = 0;
void x() {
int i;
i++;
j++;
}
}
解答:
B. i++;でコンパイルエラー
解説:
iはメソッド内で定義しているのでローカル変数です。
ローカル変数に値を代入しないで使用するとコンパイルエラーです。
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない
class A {
static int j = 0;
void x() {
int i;
i++;
j++;
}
}
解答:
B. i++;でコンパイルエラー
解説:
iはメソッド内で定義しているのでローカル変数です。
ローカル変数に値を代入しないで使用するとコンパイルエラーです。