Java silver SE17 第7章-22
解決したいこと
以下、質問になります。
問題
1. public class Value {
2. public String data;
3.
4. public Value(String data) {
5. this.data = data;
6. }
7.
8. public String toString() {
9. return this. data;
10. }
11.}
1. public class Sample {
2.
3. private static Value[] values = {
4. new Value("A"),
5. new Value("B"),
6. new Value("C"),
7. null
8. };
9.
10. public static void main (String[] args) {
11. System.out.println(values[1]);
12. System.out.println(values[2]. data);
13. System.out.println(values[3]);
14. }
15.}
A. A、B、Cの順に表示される
B. B、C、nullの順に表示される
C. Value@7344699f、C、 nullの順に表示される
D. Value@7344699f、Value@7344699f、Cの順に表示される
E. コンパイルエラーが発生する
F. 実行時に例外がスローされる
答え B
疑問点
メソッドの動く順番が不明です。
①Sampleクラスの3行目で配列を作って要素を入れているが、10行目のmainメソッドが先に動くと思うので、3行目のメソッドが実行される前に配列の要素を呼んでいるので、答えの「B」になる理由が不明です。
②また、Sampleクラスの12行目「(values[2]. data);」のdateは構文としては間違いではないし、つけてもつけなくても、どちらでも影響はないという認識であっていますでしょうか?
以上、2点が疑問点です。
初心者で申し訳ございませんが、ご教授願います。