Javaプログラムでのフィールドへのアクセスを学習するための問題です。解答を選んで挑戦しましょう。
問題
次のプログラムを実行した場合の出力はどれでしょうか?正しい選択肢を選んでください。
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
void birthday() {
this.age += 1;
}
}
public class Main {
public static void main(String[] args) {
Person john = new Person("John", 30);
john.birthday();
System.out.println(john.name + " " + john.age);
}
}
選択肢
- A. John 30
- B. John 31
- C. コンパイルエラー
- D. 実行時エラー
答えと解説
回答を見る
答え
B. John 31
解説
解説のポイント:
- クラスとフィールドの初期化
- メソッドによるフィールドの更新
このプログラムでは、Person
クラスが定義されており、name
とage
というフィールドがあります。
コンストラクタを使ってこれらのフィールドを初期化します。john
というPerson
オブジェクトが作成され、最初はage
が30になります。
birthday
メソッドが呼ばれると、age
は1歳増えて31になります。
そのためSystem.out.println(john.name + " " + john.age);
が実行されると、「John 31」が出力されます。