インスタンスごとのフィールド
出力はどれか。
public class Main {
public static void main(String[] args) {
Dog a = new Dog();
Dog b = new Dog();
a.name = "Pochi";
b.name = "Taro";
System.out.println(a.name + " " + b.name);
}
}
class Dog {
String name;
}
- A
Pochi Taro - B
Taro Taro - C
Pochi Pochi - D コンパイルエラーになる
正解と解説を見る
正解: A
- A: new するたびに別のインスタンスができ、name はインスタンスごとに別々です。
- B: a と b は別のインスタンスなので、b.name を変えても a.name は変わりません。
- C: a と b は別のインスタンスなので、a.name を変えても b.name は変わりません。
- D: フィールドへの代入は正しいコードです。
ポイント
- new するたびに新しいインスタンスが作られ、インスタンス変数はインスタンスごとに別々です。
「Java クラスの定義とインスタンス化とオブジェクトのライフサイクル」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)