Javaプログラミング初心者のためのページ -9ページ目

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で初期化されます。
初期値を指定しなくてもコンパイルエラーにはなりません。

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な変数はメソッド内では定義できません。

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はメソッド内で定義しているのでローカル変数です。
ローカル変数に値を代入しないで使用するとコンパイルエラーです。