MENU

【Java Silver】オブジェクトのフィールドへの読み取りと書き込みの理解

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クラスが定義されており、nameageというフィールドがあります。

コンストラクタを使ってこれらのフィールドを初期化します。johnというPersonオブジェクトが作成され、最初はageが30になります。

birthdayメソッドが呼ばれると、ageは1歳増えて31になります。

そのためSystem.out.println(john.name + " " + john.age);が実行されると、「John 31」が出力されます。

目次