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

staticメソッド:問題1

問題:以下のクラスAのコンパイル結果はどれか?
A. static int j = 0;でコンパイルエラー
B. i++;でコンパイルエラー
C. j++;でコンパイルエラー
D. コンパイルエラーは発生しない

class A {
int i;
static int j = 0;

static void x() {
i++;
j++;
}
}

















解答:
B. i++;でコンパイルエラー
解説:
クラスメソッド内ではインスタンス変数にアクセスできません。

staticメソッド

staticを付けて定義したメソッドをクラスメソッドといいます。
クラスメソッドはインスタンスを生成しなくても使用できるメソッドです。
通常、「クラス名.クラスメソッド名」で呼び出します。
クラスメソッドの定義内では、同じオブジェクトのインスタンス変数やインスタンスメソッドは使用できません(コンパイルエラー)。

問題1
問題2
問題3
問題4











メソッドの種類

キーワードstaticを付けないで定義したメソッドをインスタンスメソッドといいます。
キーワードstaticを付けて定義したメソッドをクラスメソッドといいます。


問題:以下のクラス定義において、正しい説明はどれか。
A. xはクラスメソッド、yはインスタンスメソッド
B. xはインスタンスメソッド、yはクラスメソッド
C. xもyもクラスメソッド
D. xもyもインスタンスメソッド

class A {
static void x(){
}
void y(){
}
}














解答:
A. xはクラスメソッド、yはインスタンスメソッド